MSSQL Sorgu Süresini Hesaplama

4 09 Eylül 2013Windows Azure Kodlar

SQL AzureBugün arayıp bir türlü bulamadığım ama sonunda doğru kelimelerle aratınca karşıma çıkan bir sonucu paylaşma gereği duydum, işinize yarayacağını umuyorum.

Aşağıdaki kod yardımıyla yarattığımız bir sorgunun MSSQL tarafında kaç mikrosaniyede çalıştırıldığını görebiliyoruz. Bu da bizlere performanssız çalışan sorgularımızı tespit edip düzeltme şansı sunuyor. Ayrıca bu kodun Azure üzerinde de çalışabildiğini de dipnot olarak eklemek isterim.

DECLARE @StartTime datetime,@EndTime datetime   
SELECT @StartTime=GETDATE() 

--MSSQL SORGUNUZ BU ALANA YERLEŞTİRİLMELİ--

SELECT @EndTime=GETDATE()   
SELECT DATEDIFF(ms,@StartTime,@EndTime) AS [Duration in microseconds]

Etiketler:

"MSSQL Sorgu Süresini Hesaplama" yazısı için 4 yorum yapılmış.

  1. Tarkan dedi ki:

    Merhaba,
    Mantıkta sorun yok. Ancak asıl ihtiyaç sorguyu çalıştırmadan geçecek süreyi tahmin ettirmek. Çalıştıktan sonra Management içerisinde de süre görülebilir. Bu işlem sadece süreci datasal kullanım olanağı veriyor. Sorgu sonuç süresini analiz etmeye ihtiyaç var.

    • Onur TIRPAN dedi ki:

      Tarikan haklisin, zaten amacim senin de bahsettigin gibi sonradan analiz yapmak.

      Yorumun uzerine biraz arastirdim ancak query calistirmadan tahmini analiz yapmak oldukca zor ve tutarliligi cok tartisilir gorunuyor. Query yapmadan analiz yapmak icin bile tablolardaki ve viewlardaki veri sayilarini, join olduklari diger view ve tablolara dair verilere hakim olmak gerekiyor. Bu da zaten yine ayni sonuca geliyor, sorgu yapmadan sorgu analiz edemiyoruz. Oracle icin bir arac varmis ama su an ulasamadim.

      Enterprise bir sistem icin zaten bu yazida bahsettigim yontemi kullanmak cok dogru olmaz. Prototip ve mvp urunler icin belki performans testi icin gecici olarak is gorebilir.

  2. Altan dedi ki:

    Aslında böyle bir şeye gerek yok zira sorguyu çalıştırmadan önce
    SET STATISTICS IO ON;
    SET STATISTICS TIME ON;
    Kullanarak gerekli istatiskleri message kısmında görebilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir