Aşağıdaki gibi, herhangi bir satır döndürmemesi garanti edilen bir sorgu, sunucularımızdan birinde 0 ila 160 saniye arasında bir şey alır:
select col1, col2, col3
from tab1
where 0 = 1
İki hafta önce, bu 48 saatlik bir aralıkta altı kez oldu. Geçen hafta aynı sorgu ~ 0 saniye sürdü. Uygulamamızın SQL'lerinin günlükleri var, ancak henüz şüpheli bulamadım. Ayrıca, bir üst 0 / nerede 0 = 1 tipi sorgu veri sayfaları vurmak asla düşündüm, bu yüzden satır / sayfa / tablo düzeyinde veri kilitlerine dayanıklı olmalıdır? Şemaya (bilinen) SQL'ler tarafından dokunulmaz.
Sorun tutarlı olmadığı ve sunucu çok ağır yük altında olduğu için SQL profiler eklemeden önce neler olduğunu teoriyi anlamak istiyorum. Bu gecikmeler sırasında diğer sorgular sorunsuz çalışır. Uygulamada bilinen bir sorun, dinamik olarak oluşturulmuş çok sayıda SQL sorgusu - 48 saatlik bir süre boyunca toplam 850 bin (günlük) sorgu yaklaşık 200k benzersiz sorgu, bu gibi sorunlara neden olabilir mi?
Sunucu SQL Server 2005 standart sürümü, 96 GB RAM, SAN diskleri ve 4 CPU / 16 çekirdek çalıştırıyor. Veritabanı dosyaları ve dosya grupları iyi bir şekilde optimize edilmiştir ve sorun olmamalıdır (ancak bunu ayrıca inceliyoruz).
Nereye bakılacağı herhangi bir işaretçi büyük takdir.
Düzenleme: Mükemmel! Yürütme planını eklemek için sorguyu yeniden oynattı ve 1 dakika 35 saniye sürdü. Sorgu süresini gösteren yürütme planı ve ekran görüntüsü:

Düzenleme 2: ikinci bir çalıştırma için istatistik zaman ayrıntıları. Şu anda sürekli yavaş görünüyor, bu yüzden profiler ve perfmon ekleyeceğiz:
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 97402 ms.
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.
