воскресенье, 14 ноября 2010 г. - www.msmirnov.ru

Использование кеша планов запросов SQL Server

Доступ к содержимому кеша планов запросов SQL Server можно получить через представление sys.dm_exec_query_stats.

Используя это представление, можно извлечь такую полезную информацию, как:
- время последнего запуска (поле last_execution_time)
- количество запусков (execution_count)
- общее количество процессорного времени, потраченного на выполнение запроса (total_worker_time)
- нагрузка на подсистему ввода-вывода (total_physical_reads, total_logical_reads, total_physical_writes, total_logical_writes)

Роль идентификатора плана запроса выполняет поле plan_handle.

Значение этого поля можно использовать в качестве входного параметра функции sys.dm_exec_sql_text, которая возвращает текст данного запроса.

В качестве примера - запрос, который отображает 10 наиболее часто запускаемых запросов, что может быть полезно при оптимизации работы с базой данных:

select queries.execution_count, q.dbid, q.[text]
from
(select top 10 qs.plan_handle, qs.execution_count
from sys.dm_exec_query_stats qs
order by qs.execution_count desc) as queries
cross apply sys.dm_exec_sql_text(plan_handle) as q
order by queries.execution_count desc
Мой сайт - www.msmirnov.ru