10 лучших динамических SQL-запросов в SQL Server: методы и примеры

Чтобы получить 10 самых популярных динамических запросов SQL в SQL Server, вы можете использовать различные методы. Вот несколько подходов с примерами кода:

Метод 1: запрос к динамическим представлениям управления SQL Server (DMV)

SELECT TOP 10 
    deqs.execution_count AS ExecutionCount,
    deqs.creation_time AS CreationTime,
    dest.text AS QueryText
FROM 
    sys.dm_exec_query_stats AS deqs
CROSS APPLY 
    sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY 
    deqs.execution_count DESC;

Метод 2: использование SQL Server Profiler
Вы можете использовать SQL Server Profiler для отслеживания и записи динамических SQL-запросов, выполняемых на сервере. Затем собранные запросы можно проанализировать, чтобы определить 10 самых популярных динамических SQL-запросов.

Метод 3: запрос к хранилищу запросов (SQL Server 2016 и более поздние версии)
Если вы используете SQL Server 2016 или более поздние версии, вы можете использовать функцию хранилища запросов для отслеживания и анализа производительности запросов. Следующий запрос извлекает 10 самых популярных динамических SQL-запросов по количеству выполнений из хранилища запросов:

SELECT TOP 10
    qt.query_text_id AS QueryTextID,
    rs.execution_count AS ExecutionCount,
    qt.query_sql_text AS QueryText
FROM
    sys.query_store_query_text AS qt
JOIN
    sys.query_store_plan AS p
    ON qt.query_text_id = p.query_text_id
JOIN
    sys.query_store_runtime_stats AS rs
    ON p.plan_id = rs.plan_id
WHERE
    qt.query_sql_text LIKE '%dynamic%'
ORDER BY
    rs.execution_count DESC;

Обратите внимание, что конкретный выбранный вами метод может зависеть от вашей версии SQL Server и доступных функций в вашей среде.