Uygulama planında eksik istatistikler için uyarı


23

Anlayamadığım bir durumum var. SQL Server yürütme planım, tabloda eksik istatistiklere sahip olduğumu söylüyor, ancak istatistikler zaten oluşturuldu:

Uyarı

Ancak tabloya bakarsak, otomatik olarak oluşturulmuş bir istatistik olduğunu göreceğiz:

resim açıklamasını buraya girin

Birisi nasıl olabileceğini anlamaya yardımcı olabilir mi?

Auto_Update ve Auto_Create istatistikleri geçerli DB'de açılır.

SQL Server 2014 kullanıyorum.

Yanıtlar:


15

Uyarı her zaman eksik tek sütunlu istatistiklere karşılık gelmez .

Optimize edicinin aradığı ve her durumda bulamadığı kesin istatistiği kesin olarak belirlemenin kolay bir yolu yoktur, ancak neredeyse her zaman sorgudaki çoklu eşitlik tahminleri arasında bazı korelasyon bilgileri sağlayacak çok sütunlu bir istatistiktir .

Belki de sizin durumunuzda, uyarının göründüğü taramayı takiben Filtre'deki tahminlere tam olarak karşılık gelir.

SQL Server'ın 'eksik istatistik' uyarısı için tüm sütunları bildirmesi iyi olurdu, ancak maalesef bugün bu şekilde çalışmıyor.

Uyarıyı kaldırmak için oluşturmanız gereken çok sütunlu istatistiği tanımlamak için belirli bir miktar deneme yanılma gerekebilir. Çok sütunlu istatistiklerin otomatik olarak oluşturulamayacağını unutmayın. Uyarıya rağmen, eksik istatistik sağlansa bile tahminin kalitesini artırabilir veya bulamayabilirsiniz.


8

Belirli bir sütun için bir istatistiğin zaten mevcut olduğu açık olduğu için, iki olasılık sunuyoruz:

  1. Nesne Gezgini farklı bir veritabanına işaret ediyor - veritabanının DEVadı olduğundan şüpheliyim , bu nedenle bir durumda dev'e bakarken diğerinde değilsiniz.
  2. Kullanılan plan istatistiğin oluşturulmasından önceki zamana aittir (ya daha erken oluşturulmuş ya da daha az olası bir şey istatistiğin yaratıldığında yeniden derlemenin tetiklenmesini engellemiştir).

Lütfen basit yanıtın (1) sorun olmadığını OPTION (RECOMPILE)doğrulayın ve onaylamak veya reddetmek için aynı sorguyu vermeye çalışın (2).


1
Aaron Bertnand, cevabınız için çok teşekkürler. Ancak Nesne Gezgini geçerli db'ye işaret eder ve OPTION (RECOMPILE) eklemek sorunu çözmez. Ayrıca benim sorgu bir saklı yordam yürütüyor eklemek istiyorum.
Artashes Khachatryan

2

İstatistiklerle ilgili bu tür uyarıları aldığınızda, sorgunuzu veya prosedürünüzü aşağıdaki ayarlarla çalıştırırsanız:

SET SHOWPLAN_ALL ON

resim açıklamasını buraya girin

eksik istatistiklerin ne olduğunu görebilirsiniz:

resim açıklamasını buraya girin

ve burada komut dosyalarını kullanarak şu anda hangi istatistiklerin mevcut olduğuna bir göz atabilir ve eğer eksikse bunları ekleyebilirsiniz.

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.