İçeriğe geç
Türkiye'nin SRO tanıtım & topluluk platformu

vSro Paylaşım SQL Server'da Çalıştırılan Son 1.000 Sorguyu (Query) Görme

Cevaplar0
Görüntüleme3
Ticaret Puanı
0
Katılım
8 Eyl 2026
Mesajlar
88
Tepkime puanı
1
Puanları
0
Mevcut Bakiye
2960 ₺
[YÖNETİCİ REHBERİ] SQL Server'da Çalıştırılan Son 1.000 Sorguyu (Query) Görme
sys.dm_exec_query_stats Üzerinden Veritabanında Yürütülen Son Sorguları, Çalışma Zamanlarını ve Detayları Listeleme



Merhaba değerli forum sakinleri,

Silkroad Online sunucu yönetiminde veritabanında az önce hangi sorguların çalıştırıldığını görmek, web panellerinden/botlardan gelen işlemleri takip etmek veya anlık veritabanı kasmalarının (CPU spike / Lag) hangi SQL sorgusundan kaynaklandığını tespit etmek için SQL Server'ın dinamik yönetim görünümlerinden (DMV) faydalanırız.

Eski paylaşımlardaki sys.syscacheobjects görünümü sorgu zamanını göstermez ve sıralamayı kullanım sıklığına göre yapar. Aşağıda paylaşılan optimize sistem; sorgunun **tam çalışma tarihini/saatini**, **hangi veritabanında çalıştığını** ve **son yürütülen 1.000 sorguyu** eksiksiz listeler.

Teknik Bilgilendirme' Alıntı:
  • Plan Cache Hafızası: Bu sorgular SQL Server'ın önbelleğinde (Plan Cache) tutulan verileri okur. SQL Server servisi yeniden başlatılırsa veya önbellek temizlenirse sayaçlar sıfırdan başlar.
  • last_execution_time: İlgili sorgunun en son tam olarak hangi gün, saat, dakika ve saniyede yürütüldüğünü belirtir.



1. YÖNTEM: En Son Çalıştırılan 1.000 Sorgu (Zamana Göre - ÖNERİLEN)

Veritabanında yürütülmüş olan en güncel sorguları kronolojik sırayla (en yeniden eskiye) listelemek için:

SQL:
-- ===================================================================
-- EN SON ÇALIŞTIRILAN 1.000 SORGUYU LİSTELEME
-- ===================================================================
SELECT TOP (1000)
    QS.last_execution_time                     AS [Son Calistirilma Zamani],
    DB_NAME(ST.dbid)                           AS [Veritabani],
    SUBSTRING(
        ST.text, 
        (QS.statement_start_offset / 2) + 1,
        ((CASE QS.statement_end_offset 
            WHEN -1 THEN DATALENGTH(ST.text)
            ELSE QS.statement_end_offset 
          END - QS.statement_start_offset) / 2) + 1
    )                                          AS [Calistirilan Asil Sorgu],
    ST.text                                    AS [Tum Batch / Prosedur Metni],
    QS.execution_count                         AS [Toplam Calisma Sayisi],
    (QS.total_worker_time / 1000)              AS [Toplam Harcanan CPU (ms)],
    QS.total_logical_reads                     AS [Toplam Okuma (Disk/RAM)]
FROM sys.dm_exec_query_stats QS WITH (NOLOCK)
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) ST
ORDER BY QS.last_execution_time DESC



2. YÖNTEM: En Çok Çalıştırılan / Sunucuyu En Çok Yoran Sorgular

Eğer sunucunuzda en çok tekrar eden ve CPU yükü oluşturan sorguları (Loop, bot veya optimizasyonsuz sorgular) bulmak isterseniz:

SQL:
-- ===================================================================
-- EN SIK KULLANILAN VE EN YÜKSEK ÇALIŞMA SAYISINA SAHİP SORGULAR
-- ===================================================================
SELECT TOP (1000)
    QS.execution_count                         AS [Calistirilma Sayisi],
    QS.last_execution_time                     AS [Son Calisma Tarihi],
    DB_NAME(ST.dbid)                           AS [Veritabani],
    ST.text                                    AS [Sorgu Metni],
    (QS.total_worker_time / QS.execution_count) / 1000 AS [Ortalama CPU Suresi (ms)]
FROM sys.dm_exec_query_stats QS WITH (NOLOCK)
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) ST
ORDER BY QS.execution_count DESC



Nasıl Uygulanır?

  1. SQL Server Management Studio (SSMS) programını açın.
  2. Herhangi bir veritabanını seçmenize gerek yoktur (Sistem seviyesinde çalışır); üst menüden New Query butonuna tıklayın.
  3. Yukarıdaki 1. Yöntem kodunu yapıştırın.
  4. TOP (1000) kısmındaki rakamı ihtiyacınıza göre (Örn: 100 veya 500) değiştirebilirsiniz.
  5. F5 tuşuna basarak çalıştırın.
  6. Alt panelde veritabanınızda yürütülmüş tüm sorgular son çalışma tarihine göre listelenecektir.

Sorularınızı ve takıldığınız yerleri bu konu altından paylaşabilirsiniz. Herkese keyifli ve güvenli yönetimler!
 

Konuyu görüntüleyenler

Yükleniyor...
Yükleniyor...
Şu anda sitemizde 40,422 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,311
Mesajlar 4,191
Kullanıcılar 1,624
Son üye mrt
Geri
Üst