Rozetka UA

MS SQL Server кэш, планы запросов, оптимизация. Много ссылок и скрипты

Сделал такую вот подборку. Читать, пробовать, расширять кругозор. Собственно, оптимизация запросов вокруг этого и пляшет

Кэширование и повторное использование плана выполнения

DBCC FREEPROCCACHE (Transact-SQL) Удаляет все элементы из кэша планов, удаляет заданный план из кэша планов с помощью указания дескриптора плана или дескриптора SQL либо удаляет все записи кэша, связанные с указанным пулом ресурсов.

Параметры и повторное использование планов выполнения Использование параметров, включая маркеры параметров в приложениях ADO, OLE DB и ODBC, может повысить уровень использования планов выполнения.

Принудительная параметризация

Указание механизма параметризации запросов с помощью структур плана

 

Оптимизация SQL-запросов (Часть 1) В данной статье рассматриваются особенности запросов на выборку данных, виды индексов, использование планов запросов, различные подходы к оптимизации запросов.

Оптимизация SQL-запросов (Часть 2) Разработка В данной статье рассматриваются рекомендации по разработке оптимальной структуры БД

Оптимизация производительности запросов SQL Server Мацей Пилеки (Maciej Pilecki) Краткий обзор: Анализ планов выполнения Оптимизация запросов Определение запросов, нуждающихся в настройке

Семь смертных грехов программиста на T-SQL

The Side Effect Of NOLOCK

 

 

     select top 50 *

     FROM sys.dm_exec_query_stats AS QS

     CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST

order by     QS.total_worker_time/QS.execution_count

 

select * from sys.dm_exec_cached_plans

 

https://technet.microsoft.com/ru-ru/library/ms187404(v=sql.105).aspx

sys.dm_exec_cached_plans

—Âîçâðàùàåò ñòðîêó äëÿ êàæäîãî ïëàíà çàïðîñà, êýøèðóåìîãî SQL Server äëÿ áîëåå áûñòðîãî âûïîëíåíèÿ çàïðîñîâ.

—ìîæíî èñïîëüçîâàòü ñî ñëåäóþùèìè ôóíêöèÿìè äèíàìè÷åñêîãî óïðàâëåíèÿ

sys.dm_exec_sql_text

sys.dm_exec_query_plan

sys.dm_exec_plan_attributes

 

 

—SQL-òåêñò âñåõ êýøèðîâàííûõ çàïèñåé, èñïîëüçîâàííûõ áîëåå îäíîãî ðàçà.

SELECT usecounts, cacheobjtype, objtype, text

FROM sys.dm_exec_cached_plans

CROSS APPLY sys.dm_exec_sql_text(plan_handle)

WHERE usecounts > 1

ORDER BY usecounts DESC;

GO

 

 

—Âîçâðàùåíèå ïëàíîâ çàïðîñîâ äëÿ âñåõ êýøèðîâàííûõ

SELECT plan_handle, query_plan, objtype

FROM sys.dm_exec_cached_plans

CROSS APPLY sys.dm_exec_query_plan(plan_handle)

—WHERE objtype =’Trigger’;

GO

 

—ðàñïðåäåëåíèå ïàìÿòè, èñïîëüçóåìîé âñåìè ñêîìïèëèðîâàííûìè ïëàíàìè â êýøå.

SELECT plan_handle, ecp.memory_object_address AS CompiledPlan_MemoryObject,

    omo.memory_object_address, pages_allocated_count, type, page_size_in_bytes

FROM sys.dm_exec_cached_plans AS ecp

JOIN sys.dm_os_memory_objects AS omo

    ON ecp.memory_object_address = omo.memory_object_address

    OR ecp.memory_object_address = omo.parent_address

WHERE cacheobjtype = ‘Compiled Plan’;

GO

 

—SQL-òåêñò+ïëàí çàïðîñà âñåõ êýøèðîâàííûõ çàïèñåé, èñïîëüçîâàííûõ áîëåå îäíîãî ðàçà.

SELECT usecounts, cacheobjtype, objtype, text,plan_handle, query_plan, objtype

FROM sys.dm_exec_cached_plans

CROSS APPLY sys.dm_exec_sql_text(plan_handle)

CROSS APPLY sys.dm_exec_query_plan(plan_handle)

WHERE usecounts > 1

ORDER BY usecounts DESC;

GO

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Pratik UaPratik UaPratik Ua