İstatistik örneklemesinin nasıl çalıştığını ve aşağıdakilerin örneklenmiş istatistik güncellemelerinde beklenen davranış olup olmadığını anlamaya çalışıyorum.
Bugüne kadar birkaç milyar satır içeren büyük bir masamız var. Bölümleme tarihi önceki iş tarihidir ve artan bir anahtardır. Bu tabloya yalnızca önceki gün için veri yüklüyoruz.
Veri yüklemesi bir gecede çalışır, bu nedenle 8 Nisan Cuma günü 7'inci için veri yükledik.
Her çalışmanın ardından istatistikleri a yerine bir örnek alsak da güncelleriz FULLSCAN
.
Belki de naif davranıyorum, ancak SQL Server'ın aralıktaki en yüksek anahtarı ve en düşük anahtarı tanımlamasını beklerdim. Bu makaleye göre :
İlk grup için alt sınır, histogramın oluşturulduğu sütunun en küçük değeridir.
Ancak, son grup / en büyük değerden bahsetmez.
Örneklenen 8'inci sabahı İstatistik güncellemesi ile, örnek tablodaki (7) en yüksek değeri kaçırdı.
Önceki güne ait veriler üzerinde çok fazla sorgulama yaptığımız için, bu yanlış kardinalite tahmini ve bir dizi sorgu zaman aşımına uğradı.
SQL Server bu anahtar için en yüksek değeri belirlememeli ve bunu maksimum olarak kullanmamalı RANGE_HI_KEY
mı? Yoksa kullanmadan güncelleme sınırlarından sadece biri FULLSCAN
mi?
Sürüm SQL Server 2012 SP2-CU7. Şu anda OPENQUERY
SP3'te SQL Server ve Oracle arasındaki bağlantılı sunucu sorgusundaki sayıları yuvarlayan davranış değişikliği nedeniyle yükseltme yapamıyoruz .