Як знайти тривалий запит із ідентифікатором процесу, іменем процесу, часом входу, користувачем, часом початку та тривалістю?


23

Чи може хто-небудь допомогти мені знайти нижче наведені деталі для тривалого запиту. ProcessID, ім'я процесу, база даних, хост, користувач, час входу в процес, час початку запиту та тривалість запиту.

Я шукаю запит або SP, який дає мені ці дані.

Відповіді:


38

Як зазначив, найкраще інструмент sp_whoIsActive від Адама Machanic . Його можна використовувати декількома способами, щоб побачити, що працює в момент запуску сценарію, або ви можете запустити його в циклі, щоб відстежувати певні дії, наприклад повільні запити.

Щоб запустити цикл, подивіться тут: Як реєструвати активність за допомогою sp_whoisactive в циклі Для виявлення повільних запитів: Як використовувати sp_WhoIsActive для пошуку повільних запитів SQL Server

Ви можете безпосередньо використовувати DMV, щоб отримати найповільніші запити та діяти звідти. Перевірте діагностичні запити Глена Беррі .

І нарешті, ви можете використовувати цей запит, щоб знайти найбільш трудомісткі запити. Ви можете пограти з dm_exec_query_stats, щоб додати більше даних або приєднатися до інших, щоб отримати більше інформації. Майте на увазі, що dmv's вимивається та оновлюється щоразу, коли сервер перезапускається.

SELECT  creation_time 
        ,last_execution_time
        ,total_physical_reads
        ,total_logical_reads 
        ,total_logical_writes
        , execution_count
        , total_worker_time
        , total_elapsed_time
        , total_elapsed_time / execution_count avg_elapsed_time
        ,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
         ((CASE statement_end_offset
          WHEN -1 THEN DATALENGTH(st.text)
          ELSE qs.statement_end_offset END
            - qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
ORDER BY total_elapsed_time / execution_count DESC;

EDIT

З деякого часу вже доступна нова опція, First Reponder Kit . Це набір сценаріїв, що надається вільно за ліцензією MIT командою BrentOzar, що допоможе у вирішенні різних завдань, включаючи те, що просить ОП. В основному sp_BlitzFirst та sp_BlitzКо які сценарії для цього випадку.


10

Я дуже рекомендую sp_whoisactive . Це сторонній SP, але може розповісти вам усе, що ви перераховували вище, і багато іншого. Це неймовірний інструмент, який ти маєш у своєму арсеналі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.