SET İSTATİSTİK IO-tezgah / çalışma dosyası


21

Ben plan üreten bir executiong query. görüntü tanımını buraya girin

İstatistikler IO:

Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'Workfile'. Scan count 128, logical reads 5952, physical reads 576, read-ahead reads 6080, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'Table1'. Scan count 9, logical reads 90450, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Yani, bazı sorular

1. Neden İstatistikler IO Profiler'den daha yüksek okuma gösteriyor? .

KB314648’de , Profiler’in İstatistik IO’dan daha yüksek rakamlar rapor etmesi durumunda sorun yok. Ancak Profiler, 92283açıklanan sorguda aynı işlemi okur. Bu, Profiler'in çalışma dosyası / çalışma masası okumalarını saymadığı anlamına mı geliyor?

2. "Worktable" ve "Workfile" arasındaki fark nedir

Bunu buldum :

  • iş dosyaları, karma birleştirmeler ve karma toplamalarla ilgili geçici sonuçları depolamak için kullanılabilir.
  • Çalışma tabloları, sorgu biriktirme, lob değişkenleri, XML değişkenleri ve imleçler için geçici sonuçları saklamak için kullanılabilir.

Aralarında fiziksel bir fark var mı?

3. Bu özel durumda neden “Çalışma Masası” var?

0 mantıksal okuma varsa neden çalışma masam var? İstatiksel IO'ya dahil olması, sadece buna ihtiyaç olabileceğinden (kötü tahminlerde)?

Tekniğin üzerinde bulunan açıklama belirsiz görünüyor.

4. Workfile'daki "Fiziksel okumalar" ne anlama geliyor?

Bu, sorguya yeterli bellek verilmediği anlamına mı geliyor, bu nedenle sorgu yürütülürken verilerin diske yazılması gerekiyordu (Karma Eşleşmede sarı uyarı)? Ne zaman İstatistik IO'da çalışma masasını / çalışma dosyasını fiziksel okur ile gördüğümde, sorgu için yeterli hafıza bulunmadığını ve sorgunun bazı ara sonuçlarının tempdb diske yazılmasının zorunlu olduğunu varsayabilir miyim? Ve ne zaman sadece mantıksal okumalar görsem, RAM kullanılır?

5. Bir "çalışma dosyası", bir amaç için kullanılan tam olarak bir masa anlamına mı geliyor?

Birden fazla çalışma dosyası / çalışma masası varsa, hangi operasyonun kullanıldığını bilmiyorum?


Karma eşleşmedeki uyarı nedir? Bu bir tempdb sızıntısı mı?
Tom V - Team Monica

@TomV, evet - seviye 1 ve seviye 2 dökmek
Jānis

Yanıtlar:


15

1. Neden İstatistikler IO Profiler’den daha yüksek okuma gösteriyor?

Fikrim yok, üzgünüm. Genellikle farklılıklar vardır, çünkü bilgi tabanı makalesinde belirtildiği gibi farklı şeyleri ölçerler. Bu konuda bildiğim hiçbir ek belge yok. Ayrıntılı testler yoluyla bazı şeyleri çıkartabilirsiniz, ancak bulduğunuz sürümlerin sürümlerde ve sürümlerde tutarlı kalacağının garantisi yoktur. Amaçlanan davranış, olası hataları hesaba katmadan önce yeterince tutarsız .

2. "Worktable" ve "Workfile" arasındaki fark nedir

Her ikisi de iç nesnelerdir; Aksi taktirde isimlerin önerdiği gibi: Çalışma masası masaya benzer bir yapıya sahiptir, çalışma dosyası dosyaya benzer. Ayrıntılı yapı görünmez, ancak bazı geniş özellikler metotları inceleyerek ve uygulama yollarını bir hata ayıklayıcı ile izleyerek ayırt edilebilir.

3. Bu özel durumda neden “Çalışma Masası” var?

Bir (tablo modu) karma işlemi için daima bir çalışma masası gerekir. Girdiyi karma bölümlere dağıtmada (tablo bölümlemeyle ilgili olmayan aşırı yüklenmiş bir terim) ve durumu takip etmede dahili olarak kullanılır. Bir karma çalışma tablosu raporunda istatistik çıktısında sıfırdan başka bir şey hiç görmedim, ancak daha sonra hiçbir zaman gerçekten incelemedim.

4. Workfile'daki "Fiziksel okumalar" ne anlama geliyor?

İş dosyaları, bir karma bölümü dökülürken kullanılan mekanizmanın bir parçasıdır. Belgelenmemiş olsa da, okuma ve okuma okuma işlemleri yürütme motoru iş dosyalarından dökülen karma bölümleri aldığında gerçekleşir.

5. Bir "çalışma dosyası", bir amaç için kullanılan tam olarak bir masa anlamına mı geliyor?

Hatırladığım kadarıyla birden fazla örnek olabilir. Belirli bir STATISTICS IOçizgiyi belirli bir nesneyle veya plan düğümüyle ilişkilendirmemin hiçbir yolu yoktur . Bu uzun zamandır devam eden bir sınırlamadır. SQL Server 2016'da buna bir değişiklik olabilir, ancak iç geçici nesnelere uygulanıp uygulanmadığını görmek için test etmedim.

Sonuç olarak, bir çalışma sonrası plandaki (veya DMV'ler, Genişletilmiş Olaylar vb.) Diğer bilgilere bakarak öğrenebileceğinizlerin ötesinde iş dosyaları ve çalışma tablolarının çıktılarından öğrenilmesi pek de yararlı değildir STATISTICS IO. Eksik cevap için özür dilerim, ama en iyisi kafamın tepesinden teklif edebileceğim.

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.