Чтобы получить 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 и доступных функций в вашей среде.