sys.dm_exec_sql_text
имеет столбец dbid
, так что вы можете отфильтровать его. Например, я взял запрос из другого ответа и добавил фильтрацию предложения where для запросов master
:
SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
WHERE dest.dbid = DB_ID('master')
ORDER BY deqs.last_execution_time DESC
Обратите внимание, что не все запросы имеют правильный контекст базы данных (или контекст базы данных вообще). Например, если у вас есть запрос, который объединяет две таблицы, которые находятся в разных базах данных, вы увидите только один dbid - он будет или контекстом выполнения, и может быть или не быть одной из баз данных, на которые есть ссылка в запросе. Таким образом, применение фильтра может фактически скрыть интересующие вас запросы.
Вы можете получить параметры, копаясь в XML из других DMO, таких как sys.dm_exec_cached_plans
и sys.dm_exec_query_plan
. Если у вас уже есть план выполнения для захваченного вами запроса, будет гораздо проще использовать такой инструмент, как SQL Sentry Plan Explorer , чем самостоятельно разбираться с блоками XML.
Отказ от ответственности: я работаю в SQL Sentry, который предоставляет сообществу бесплатный инструмент.