Sorgu Doktoru tarafından kullanılan bir SQL Server veritabanı dosyası ve Buffer Pool içinde fiziksel olarak depolanan İstatistikler nerede?
Daha spesifik olarak, DMV'ler ve / veya DBCC kullanarak istatistiklerin kullandığı sayfaları bulmanın bir yolu var mı?
Hem SQL Server 2008 Internals hem de SQL Server Internals ve Sorun Giderme kitaplarına sahibim ve bunların hiçbiri istatistiğin fiziksel yapısı hakkında konuşmuyor; eğer öyleyse bu bilgiyi bulamadım.
StatMan
bir blob çıkaran yalnızca dahili bir toplama işlevi ( ) tarafından oluşturulur (ironik olarak, bu ad bir SSMS sorgu penceresinde bir işlev olarak vurgulanır). Mantıksal olarak, istatistikler bir dizin veya bir dizi tablo sütunuyla ilişkilendirilir, bu yüzden blob'a götürecek olan bir binary
veya varbinary
sütun arayan dahili meta veri tablolarını inceleyerek başlardım. Bu kullanılarak görüntülenebilir olmalı DBCC PAGE
, ancak hepsi dahili olduğundan muhtemelen başka bir yol değil.
sysindexes.statblob
ama 2005'ten beri geri dönen NULL
ve yerin tamamen belgesiz olduğu, yalnızca geri alınabilen (benim bildiğim) DBCC SHOW_STATISTICS(o, i) WITH STATS_STREAM;
.
sys.sysidxstats
buldum - içerideler - bu tabloda bir LOB işaretçisi var gibi görünüyor. Sütun istatistiklerinin henüz neresinde olduğundan emin değilim; Bir type
sütun olduğu gibi o masada da olabilirler .
STATS_STREAM
bu dosyanın kendisinde ulaşılabilir bir şey olup olmadığını hiç bakmadığım bir ikili gösterir .