İstatistikleri güncellerken örnekleme nasıl çalışır?


10

Birkaç büyük masam var. İstatistiklerinin haftalık bir bakım planı ile güncel olmasını sağlamak istiyorum.

Ancak bunu yapmak çok zaman alıyor.

Belirtirsem

WITH SAMPLE 50 PERCENT

SQL Server sonra örnek:

  1. sayfaların ilk% 50'si
  2. diğer tüm sayfalar
  3. ya da başka bir strateji?

BOL bu konuda net değil.

Yanıtlar:


16

İçin WITH SAMPLE 50 PERCENTSQL Server bir bozuk para çevirir tablodaki her bir veri sayfası için sanki çalışır. Kafaları indirirse, sayfadaki tüm satırları okur. Kuyruklara düşerse hiç okumaz.

UPDATE STATISTICS T WITH SAMPLE 50 PERCENTProfiler'da aramayı izlemek, aşağıdaki sorgunun yayıldığını gösterir

SELECT StatMan([SC0], [SB0000])
FROM   (SELECT TOP 100 PERCENT [SC0],
                               step_direction([SC0]) OVER (ORDER BY NULL) AS [SB0000]
        FROM   (SELECT [C] AS [SC0]
                FROM   [dbo].[T] TABLESAMPLE SYSTEM (5.000000e+001 PERCENT) 
                WITH (READUNCOMMITTED)) AS _MS_UPDSTATS_TBL_HELPER
        ORDER  BY [SC0],
                  [SB0000]) AS _MS_UPDSTATS_TBL
OPTION (MAXDOP 1) 

Plan ile

resim açıklamasını buraya girin

TABLESAMPLE SYSTEM (5.000000e+001 PERCENT)örneklemeden sorumludur ve burada belgelenmiştir

TABLESAMPLE SYSTEMyaklaşık satır yüzdesini döndürür ve tablodaki her fiziksel 8 KB'lik sayfa için rastgele bir değer oluşturur. Bir sayfanın rasgele değerine ve sorguda belirtilen yüzdeye bağlı olarak, sayfa örneğe dahil edilir veya hariç tutulur. Eklenen her sayfa, örnek sonuç kümesindeki tüm satırları döndürür.

Belgeler ayrıca

Plan bir tablo taramasının yapıldığını göstermesine rağmen, yalnızca sonuç kümesine dahil edilen sayfaların veri dosyasından okunması gerekir.

STATMANBir iç toplama işlevi için çağrıdır kısaca tarif

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.