|
|
|
Процедура и кэши (ASE 12.5)
|
|||
|---|---|---|---|
|
#18+
авторДумаю пора привлекать спецов из тех.поддержки! moris, ASCRUS рассудите нас Ну вот и у меня наконец-то руки дошли до вашего вопроса. Значит так - разумеется оптимизатор оценивает при генерации плана стоимости физического и логического IO, с теми коэффициентами, которые были представлены выше.. Однако при оценке логического / физического IO, оптимизатор полагается только на то, что он туда сам и положит на предыдущих шагах выполнения данного запроса.. Например, рассматривает разные стратегии выполнения запроса - то же самое реформатирование - (создание внутренней временной таблицы в tempdb, выполняя физическую запись).. Стоит ли ему его использовать??? Кол-во страниц умножается на соответствующие коеффициенты и получается общая стоимость плана.. Полученный план с реформатированием используя Physical IO, будет ли дешевле, чем энное кол-во раз запрашивать страницы из кеша Logical IO ??? При генерации плана оптимизатор не может оценить, сколько %% нужных страниц там находятся, (если он сам их туда не загонит.. см. выше) Для того, что неверующих в этом убедить давайте выполним простой тест в ASE15.. dbcc traceon(3604) go set option show_pio_costing long -- оценка оптимизатора по физическому IO go set option show_lio_costing long -- оценка оптимизатора по логическому IO go set statistics io on -- реальный IO (почтитанный после выполнения запроса) go select * from PMATTR FINAL PLAN ( total cost = 2289.5 ): lio=57 pio=56 cpu=7755 Table: PMATTR scan count 1, logical reads: (regular=56 apf=0 total=56), physical reads: (regular=8 apf=48 total=56), apf IOs used=48 Еще раз выполняем.. Данные таблицы находятся точно в кеше.. Сможет ли оптимизатор при генерации плана увидеть это ?? FINAL PLAN ( total cost = 2289.5 ): lio=57 pio=56 cpu=7755 Table: PMATTR scan count 1, logical reads: (regular=56 apf=0 total=56), physical reads: (regular=0 apf=0 total=0), apf IOs used=0 Ответ - нет, не видит.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2009, 17:47 |
|
||
|
Процедура и кэши (ASE 12.5)
|
|||
|---|---|---|---|
|
#18+
Помните, я в самом первом топике этой темы спрашивал о том, как справиться с той ерундой которая у меня происходит? Так вот ответ: sp_recompile "my_procedure" и после этого все летает :) Но на всяк случай, до sp_recompile я еще сделал "Select * from my_tabel" по всем таблицам, которые используются в запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 09:15 |
|
||
|
|

start [/forum/topic.php?fid=55&gotonew=1&tid=2011024]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
10ms |
get first new msg: |
10ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 182ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...