İşlem kimliği, işlem adı, giriş zamanı, kullanıcı, başlangıç ​​zamanı ve süresi ile uzun süredir çalışan bir sorguyu nasıl bulabilirim?


23

Herhangi biri uzun süren sorgu için aşağıda verilen ayrıntıları bulmama yardımcı olabilir. İşlem Kimliği, işlem adı, veritabanı, ana bilgisayar, kullanıcı, işlem giriş zamanı, sorgu başlangıç ​​zamanı ve sorgu süresi.

Bir sorgu veya bana bu verileri veren bir SP arıyorum.

Yanıtlar:


38

Yorumlandığı gibi, etrafındaki en iyi araç, Adam Machanic tarafından sp_whoIsActive . Örneğin betiği başlattığınız anda neyin çalıştığını görmek için çeşitli şekillerde kullanılabilir veya örneğin, yavaş sorgular olarak belirli bir işlemi izlemek için döngüler halinde çalıştırabilirsiniz.

Döngüde çalıştırmak için buraya göz atın: Etkinlik Döngüde sp_whoisactive kullanma Yavaş sorguları tespit etmek için: Yavaş SQL Server Sorgularını Bulmak için sp_WhoIsActive Nasıl Kullanılır

En yavaş sorguları almak ve oradan hareket etmek için doğrudan DMV'leri kullanabilirsiniz. Kontrol Glenn Berry'yle teşhis sorgular .

Sonunda, çoğu zaman alan sorguyu bulmak için bu sorguyu kullanabilirsiniz. Daha fazla veri eklemek için dm_exec_query_stats ile oynayabilir ya da daha fazla bilgi almak için diğerlerine katılabilirsiniz. Sunucunun her yeniden başlatılmasında dmv'nin temizlenmiş ve yenilenmiş olduğunu unutmayın.

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;

DÜZENLE

Bir süredir yeni bir seçenek zaten mevcut, İlk Yanıtlayıcı Kiti . MIT lisansı altında BrentOzar ekibi tarafından serbestçe verilen ve OP tarafından sorulanlar da dahil olmak üzere çeşitli görevlerde yardımcı olacak bir dizi komut dosyasıdır. Esas olarak sp_BlitzFirst ve sp_BlitzWho bu dava için komut dosyaları.


10

Ben sp_whoisactive tavsiye ederim . Bu bir üçüncü taraf SP'dir, ancak yukarıda listelenen her şeyi ve bundan daha fazlasını size söyleyebilir. Cephaneliğiniz için inanılmaz bir araçtır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.