Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Стоимость запроса  [new]
TJ001
Member

Откуда: от верблюда
Сообщений: 428
ДрУги! Помогите разобраться
я что-то не пойму никак
есть два запроса, с небольшим отличием
у них получается такая вот статистика
+ пакет1
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 6 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

SQL Server Execution Times:
CPU time = 16 ms, elapsed time = 25 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
Table '#2488CF74'. Scan count 0, logical reads 7, physical reads 0, read-ahead reads 0.
Table 'spt_values'. Scan count 1, logical reads 2, physical reads 2, read-ahead reads 0.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 34 ms.

(строк обработано: 6)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 34 ms.

(строк обработано: 5)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 34 ms.
Table '#257CF3AD'. Scan count 0, logical reads 2, physical reads 0, read-ahead reads 0.
Table 'spt_values'. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

(строк обработано: 1)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

(строк обработано: 5)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
Table '#267117E6'. Scan count 0, logical reads 26, physical reads 0, read-ahead reads 0.
Table 'DT271'. Scan count 1, logical reads 5, physical reads 5, read-ahead reads 0.
Table '_1SJOURN'. Scan count 1, logical reads 3, physical reads 3, read-ahead reads 0.
Table '#257CF3AD'. Scan count 1, logical reads 1, physical reads 0, read-ahead reads 0.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 185 ms.

(строк обработано: 25)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 185 ms.

(строк обработано: 11)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 185 ms.
Table '#27653C1F'. Scan count 0, logical reads 5, physical reads 0, read-ahead reads 0.
Table 'SC8800'. Scan count 4, logical reads 6, physical reads 3, read-ahead reads 0.
Table '_1SJOURN'. Scan count 5, logical reads 30, physical reads 7, read-ahead reads 0.
Table 'DH8828'. Scan count 1, logical reads 44, physical reads 0, read-ahead reads 44.
Table '#2488CF74'. Scan count 1, logical reads 1, physical reads 0, read-ahead reads 0.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 208 ms.

(строк обработано: 4)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 210 ms.

(строк обработано: 19)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 210 ms.
Table 'Worktable'. Scan count 24, logical reads 76, physical reads 0, read-ahead reads 0.
Table 'Worktable'. Scan count 24, logical reads 28, physical reads 0, read-ahead reads 0.
Table '#267117E6'. Scan count 2, logical reads 2, physical reads 0, read-ahead reads 0.
Table 'DH8828'. Scan count 9, logical reads 60, physical reads 0, read-ahead reads 0.
Table '#27653C1F'. Scan count 96, logical reads 96, physical reads 0, read-ahead reads 0.
Table 'DT8828'. Scan count 1255, logical reads 2836, physical reads 2, read-ahead reads 2.
Table 'SC4787'. Scan count 50, logical reads 250, physical reads 48, read-ahead reads 0.
Table 'SC32'. Scan count 50, logical reads 250, physical reads 51, read-ahead reads 0.

SQL Server Execution Times:
CPU time = 16 ms, elapsed time = 788 ms.

(строк обработано: 4)

SQL Server Execution Times:
CPU time = 16 ms, elapsed time = 792 ms.

(строк обработано: 49)

SQL Server Execution Times:
CPU time = 16 ms, elapsed time = 792 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 14 ms.
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

+ пакет2
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

SQL Server Execution Times:
CPU time = 14 ms, elapsed time = 14 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
Table '#3B6C34CC'. Scan count 0, logical reads 7, physical reads 0, read-ahead reads 0.
Table 'spt_values'. Scan count 1, logical reads 2, physical reads 2, read-ahead reads 0.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 2 ms.

(строк обработано: 6)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 2 ms.

(строк обработано: 5)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 2 ms.
Table '#3C605905'. Scan count 0, logical reads 2, physical reads 0, read-ahead reads 0.
Table 'spt_values'. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

(строк обработано: 1)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.

(строк обработано: 5)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
Table '#3D547D3E'. Scan count 0, logical reads 26, physical reads 0, read-ahead reads 0.
Table 'DT271'. Scan count 1, logical reads 5, physical reads 5, read-ahead reads 0.
Table '_1SJOURN'. Scan count 1, logical reads 3, physical reads 3, read-ahead reads 0.
Table '#3C605905'. Scan count 1, logical reads 1, physical reads 0, read-ahead reads 0.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 152 ms.

(строк обработано: 25)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 153 ms.

(строк обработано: 11)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 153 ms.
Table '#3E48A177'. Scan count 0, logical reads 5, physical reads 0, read-ahead reads 0.
Table 'SC8800'. Scan count 4, logical reads 6, physical reads 3, read-ahead reads 0.
Table '_1SJOURN'. Scan count 5, logical reads 30, physical reads 7, read-ahead reads 0.
Table 'DH8828'. Scan count 1, logical reads 44, physical reads 0, read-ahead reads 44.
Table '#3B6C34CC'. Scan count 1, logical reads 1, physical reads 0, read-ahead reads 0.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 133 ms.

(строк обработано: 4)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 135 ms.

(строк обработано: 19)

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 135 ms.
Table 'Worktable'. Scan count 24, logical reads 28, physical reads 0, read-ahead reads 0.
Table '#3D547D3E'. Scan count 2, logical reads 2, physical reads 0, read-ahead reads 0.
Table 'DH8828'. Scan count 12, logical reads 24, physical reads 0, read-ahead reads 0.
Table '#3E48A177'. Scan count 3, logical reads 3, physical reads 0, read-ahead reads 0.
Table 'DT8828'. Scan count 1227, logical reads 10429, physical reads 2, read-ahead reads 309.
Table 'SC4787'. Scan count 50, logical reads 250, physical reads 48, read-ahead reads 0.
Table 'SC32'. Scan count 50, logical reads 250, physical reads 51, read-ahead reads 0.

SQL Server Execution Times:
CPU time = 109 ms, elapsed time = 879 ms.

(строк обработано: 4)

SQL Server Execution Times:
CPU time = 109 ms, elapsed time = 883 ms.

(строк обработано: 48)

SQL Server Execution Times:
CPU time = 109 ms, elapsed time = 883 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 3 ms.
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.


пакеты запросов состоят из нескольких блоков
отличие имеют только последние блоки

1й пакет выполняется дольше, чем второй. хотя, план запроса утверждает, что последний блок первого пакета занимает 51% от общей стоимости, а последний блок 2го пакета 66%. почему так получается?
11 апр 14, 13:57    [15868056]     Ответить | Цитировать Сообщить модератору
 Re: Стоимость запроса  [new]
Glory
Member

Откуда:
Сообщений: 104760
TJ001
1й пакет выполняется дольше, чем второй. хотя, план запроса утверждает, что последний блок первого пакета занимает 51% от общей стоимости, а последний блок 2го пакета 66%. почему так получается?

А какая корреляция должна быть между стоимостями в разных пакетах ?
11 апр 14, 13:59    [15868072]     Ответить | Цитировать Сообщить модератору
 Re: Стоимость запроса  [new]
TJ001
Member

Откуда: от верблюда
Сообщений: 428
ну, почему план говорит что последний блок дешевле в запросе №1, в то время, как более дорогой (по словам плана) блок в запросе №2, выполняется быстрее?
насколько я понимаю, если он дешевле, значит и выполняться должен быстрее, не так ли?
11 апр 14, 14:03    [15868100]     Ответить | Цитировать Сообщить модератору
 Re: Стоимость запроса  [new]
Glory
Member

Откуда:
Сообщений: 104760
TJ001
ну, почему план говорит что последний блок дешевле в запросе №1, в то время, как более дорогой (по словам плана) блок в запросе №2, выполняется быстрее?

Стоимость одного пакета всегда 100%
11 апр 14, 14:08    [15868134]     Ответить | Цитировать Сообщить модератору
 Re: Стоимость запроса  [new]
TJ001
Member

Откуда: от верблюда
Сообщений: 428
пакет имеет следующий вид
подзапрос1
подзапрос2
подзапрос3
подзапрос4
подзапрос5

выполняются последовательно и каждый последующий использует результат предыдущего

пакеты отличаются только подзапросом №5

план по стоимости каждого подзапроса в пакете 1, относительно всего пакета, распределяется так:
подзапрос1: 3%
подзапрос2: 3%
подзапрос3: 25%
подзапрос4: 19%
подзапрос5: 51%

для пакета 2
подзапрос1: 2%
подзапрос2: 2%
подзапрос3: 17%
подзапрос4: 13%
подзапрос5: 66%

если отличаются только подзапрос5, то можно сопоставить производительность и сделать вывод, что в пакете 2 подзапрос5 - тяжелее или я ошибаюсь?

кстати, если вычислить сумму % в пакете №1, то получается 101% почему-то)))
11 апр 14, 14:13    [15868157]     Ответить | Цитировать Сообщить модератору
 Re: Стоимость запроса  [new]
Glory
Member

Откуда:
Сообщений: 104760
TJ001
если отличаются только подзапрос5, то можно сопоставить производительность и сделать вывод, что в пакете 2 подзапрос5 - тяжелее или я ошибаюсь?

Еще раз
Стоимость пакета всегда 100%. Независимо от числа подзапросов.
По вашей логике единственный запрос в пакете всегда будут хуже любого запроса из пакета с несколькими запросами


TJ001
кстати, если вычислить сумму % в пакете №1, то получается 101% почему-то)))

Калькулятор проверьте
11 апр 14, 14:16    [15868185]     Ответить | Цитировать Сообщить модератору
 Re: Стоимость запроса  [new]
TJ001
Member

Откуда: от верблюда
Сообщений: 428
Glory
По вашей логике единственный запрос в пакете всегда будут хуже любого запроса из пакета с несколькими запросами

дошло, спасибо!)))
11 апр 14, 14:20    [15868223]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить