İndeksler ve performans
IO, süre, Query Store ve parametreler
Önce baseline, sonra tek değişiklik.
Kavramı anlayalım
SET STATISTICS IO logical reads gibi erişim ölçümleri; SET STATISTICS TIME CPU ve elapsed time bilgileri verir. Cache, paralellik ve diğer iş yükleri ölçümü etkiler. Tek çalıştırmadaki milisaniye farkını kesin iyileşme diye sunma. Aynı veriyi, aynı parametreleri ve aynı koşulları karşılaştır. Üretimde cache temizleme komutları kullanma.
Query Store sorgu, plan ve çalışma istatistiği geçmişini izlemek için kullanılır; etkinleştirme, depolama ve retention DBA kararıdır. Plan regression ve parametreye duyarlı performansı araştırmaya yardımcı olur. SQL Server 2022’nin Parameter Sensitive Plan özelliği sürüm ve compatibility koşullarına bağlıdır; 2019’da aynı davranışı bekleme. RECOMPILE, plan forcing veya OPTIMIZE FOR birer ölçülen müdahaledir, varsayılan tedavi değildir.
Performans önerilerini sayısal kanıtla desteklemek için.
Tüm sunucunun cache’ini temizleyip laboratuvar gibi ölçmek.
Aynı konu. Üç farklı derinlik.
SET STATISTICS IO ON;
SELECT ProductName FROM lab.Product WHERE ProductId = 1;
SET STATISTICS IO OFF;SSMS Messages sekmesindeki reads değerlerini incele.
Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.
Önce kendin dene.
Müşteri 2 sorgusunun IO ve süre bilgilerini kaydet.
Çözümü ve açıklamasını göster
SET STATISTICS IO ON;
SET STATISTICS TIME ON;
SELECT OrderId FROM lab.SalesOrder WHERE CustomerId = 2;
SET STATISTICS TIME OFF;
SET STATISTICS IO OFF;Küçük veri üzerinde süreler gürültülü olabilir; sonuç ve reads’i de doğrula.