sys.dm_db_index_operational_stats (Transact-SQL)
Geçerli düşükdüzey g/Ç, kilitleme, latching ve her bölüm bir tablo veya dizin için erişim yöntem etkinliği veritabanında döndürür.
Sözdizimi
sys.dm_db_index_operational_stats (
{ database_id | NULL | 0 | DEFAULT }
, { object_id | NULL | 0 | DEFAULT }
, { index_id | 0 | NULL | -1 | DEFAULT }
, { partition_number | NULL | 0 | DEFAULT }
)
Bağımsız değişkenler
database_id| NULL | 0 | VARSAYILAN
Veritabanı kimliği.database_idis smallint.Geçerli sinyalidir, boş bir veritabanı kimlik numarası 0 ya da varsayılan.Varsayılan değer 0'dir.null, 0 ve varsayılan eşdeğer bu bağlamda değerlerdir.örnek tüm veritabanları için bilgi dönmek için null belirtmek SQL Server.null için belirtirseniz, database_id, de belirtmeniz gerekir için null object_id, index_id, ve partition_number.
Yerleşik işlev DB_ID belirtilebilir.Veritabanı adı belirtilmeden DB_ID kullanırken, geçerli veritabanı Uyumluluk düzey 90 olmalıdır.
object_id | NULL | 0 | VARSAYILAN
tablo veya Görünüm dizin nesne kimliği açıktır.object_idis int.Geçerli girişleri olan bir tablo ya da görünüm, null, kimlik numarası 0 ya da varsayılan.Varsayılan değer 0'dir.null, 0 ve varsayılan eşdeğer bu bağlamda değerlerdir.
Belirtilen veritabanında tüm tablolar ve görünümler için önbelleğe alınmış bilgileri döndürmek için null belirtin.null için belirtirseniz, object_id, de belirtmeniz gerekir için null index_id ve partition_number.
index_id| 0 | NULL | -1 | VARSAYILAN
Dizin kimliği.index_idis int.Geçerli girişleri olup kimlik numarası 0 bir dizinin object_id olan bir öbek null, -1 veya varsayılan.-1, null, -1, varsayılan değerdir ve varsayılan bu bağlamda eşdeğer değerlerdir.temel tablo ya da görünüm için tüm dizinler için önbelleğe alınmış bilgileri döndürmek için null belirtin.null için belirtirseniz, index_id, de belirtmeniz gerekir için null partition_number.
partition_number | NULL | 0 | VARSAYILAN
Bölüm numarası (nesne).partition_numberis int.Geçerli giriş sinyalidir partion_number bir dizin veya yığın, null, 0 veya varsayılan.Varsayılan değer 0'dir.null, 0 ve varsayılan eşdeğer bu bağlamda değerlerdir.Tüm bölümler için önbelleğe alınmış bilgileri dizin veya yığın dönmek için null belirtin.
partition_number1 tabanlıdır.Nonpartitioned dizin veya yığın partition_number küme 1.
Dönen Tablo
Sütun adı |
Veri türü |
Açıklama |
---|---|---|
database_id |
smallint |
Veritabanı kimliği. |
object_id |
int |
tablo veya Görünüm kimliği. |
index_id |
int |
Dizin veya yığın kimliği. 0 = Yığın |
partition_number |
int |
1 tabanlı bölüm numarası dizin veya yığın içinde. |
leaf_insert_count |
bigint |
yaprak- toplam sayımıdüzey ekler. |
leaf_delete_count |
bigint |
yaprak- toplam sayımıdüzey siler. |
leaf_update_count |
bigint |
yaprak-düzey güncelleştirmelerin toplam sayısı. |
leaf_ghost_count |
bigint |
Toplu yaprak- olarak işaretlenendüzey satır sayısı silinir, ancak henüz kaldırıldı.Bu satır küme aralıklarla Temizleme iş parçacığı tarafından kaldırılır.Bu değer, bir bekleyen anlık görüntü yalıtım hareket nedeniyle korunur satır içermez.anlık görüntü yalıtım hareketleri hakkında daha fazla bilgi için bkz: Satır sürüm oluşturma tabanlı yalıtım düzeyleri Veritabanı Altyapısı'nda. |
nonleaf_insert_count |
bigint |
Yukarıda yaprak düzeyekler toplam sayısı. 0 = Yığın |
nonleaf_delete_count |
bigint |
Toplu siler yukarıda yaprak düzeysayısı. 0 = Yığın |
nonleaf_update_count |
bigint |
Toplu güncelleştirmeleri yukarıda yaprak düzeysayısı. 0 = Yığın |
leaf_allocation_count |
bigint |
Toplu yaprak- dizin veya yığındüzey sayfa ayırma sayısı. Bir dizin için bir sayfa bölünmüş sayfa ayırma karşılık gelir. |
nonleaf_allocation_count |
bigint |
sayfa tarafından neden sayfa ayırma toplu sayısı yaprakdüzeyyukarısındaki böler. 0 = Yığın |
leaf_page_merge_count |
bigint |
Toplam sayfa sayısı yaprak düzeybirleştirir. |
nonleaf_page_merge_count |
bigint |
Toplam sayfa sayısı, yaprak düzeybirleştirir. 0 = Yığın |
range_scan_count |
bigint |
aralık ve tablo taramaları toplu sayısı dizin veya yığın başladı. |
singleton_lookup_count |
bigint |
Dizin veya yığın tek satır alışlardan toplam sayısı. |
forwarded_fetch_count |
bigint |
Bir iletme kaydı getirildi satır sayısı. 0 = Dizinler |
lob_fetch_in_pages |
bigint |
Büyük nesne (lob) sayfaları toplam sayımı lob_data ayırma birimialınır.Bu sayfalar türündeki sütunlarında depolanan verileri içeren text, ntext, image, varchar(max), nvarchar(max), varbinary(max), ve xml.Daha fazla bilgi için, bkz. Veri Türleri (Transact-SQL).Ayırma birimleri hakkında daha fazla bilgi için bkz: Tablo ve dizin organizasyon. |
lob_fetch_in_bytes |
bigint |
Alınan toplu lob veri bayt sayısı. |
lob_orphan_create_count |
bigint |
Toplu işlemlerde oluşturulan sahipsiz lob değerleri toplam sayısı. 0 = Kümelenmemiş dizin |
lob_orphan_insert_count |
bigint |
Sahipsiz lob değerleri toplu işlemleri sırasında eklenen toplam sayısı. 0 = Kümelenmemiş dizin |
row_overflow_fetch_in_pages |
bigint |
satır taşması verisi sayfaları toplam sayısı row_overflow_data ayırma birimialınır. Bu sayfalar türündeki sütunlarında depolanan verileri içeren varchar(n), nvarchar(n), varbinary(n), ve sql_variant , itilmiş-satır.Daha fazla bilgi için, bkz. 8 kb aşan satır taşma veri.Ayırma birimleri hakkında daha fazla bilgi için bkz: Tablo ve dizin organizasyon. |
row_overflow_fetch_in_bytes |
bigint |
Alınan satır taşması verisi baytlarının toplam sayısı. |
column_value_push_off_row_count |
bigint |
Toplu lob veri ve kapalı bir eklenen veya güncelleştirilen satır uyma bir sayfaoluşturmak için satır itildiği satır taşması verisi değerleri sütun sayısı. |
column_value_pull_in_row_count |
bigint |
Toplu lob veri ve satır çektiği satır taşması verisi değerleri sütun sayısı.Güncelleştirme işlemi bir kayıttaki alan boşaltır ve lob_data veya row_overflow_data ayırma birimi IN_ROW_DATA ayırma birimigelen çekme bir veya daha fazla satır kapalı değerleri için bir fırsat sağlar bu oluşur.Ayırma birimleri hakkında daha fazla bilgi için bkz: Tablo ve dizin organizasyon. |
row_lock_count |
bigint |
İstenen satır kilitlerin toplam sayısı. |
row_lock_wait_count |
bigint |
Toplu kaç kez Veritabanı Altyapısı üzerinde bir satır kilitbekledi. |
row_lock_wait_in_ms |
bigint |
Toplam milisaniye sayısı Veritabanı Altyapısı üzerinde bir satır kilitbekledi. |
page_lock_count |
bigint |
İstenen sayfa kilitlerin toplam sayısı. |
page_lock_wait_count |
bigint |
Toplu kaç kez Veritabanı Altyapısı sayfa kilitbekledi. |
page_lock_wait_in_ms |
bigint |
Toplam milisaniye sayısı Veritabanı Altyapısı sayfa kilitbekledi. |
index_lock_promotion_attempt_count |
bigint |
Toplu kaç kez Veritabanı Altyapısı çalıştığınız yöneticinize iletin kilitler. |
index_lock_promotion_count |
bigint |
Toplu kaç kez Veritabanı Altyapısı aktarılana kilitler. |
page_latch_wait_count |
bigint |
Toplu kaç kez Veritabanı Altyapısı , mandal çekişmenedeniyle bekledi. |
page_latch_wait_in_ms |
bigint |
Toplam milisaniye sayısı Veritabanı Altyapısı , mandal çekişmenedeniyle bekledi. |
page_io_latch_wait_count |
bigint |
Toplu kaç kez Veritabanı Altyapısı üzerinde bir g/Ç sayfa mandalbekledi. |
page_io_latch_wait_in_ms |
bigint |
Toplam milisaniye sayısı Veritabanı Altyapısı üzerinde sayfa g/Ç mandalbekledi. |
tree_page_latch_wait_count |
bigint |
Alt kümesini page_latch_wait_count , sadece üst -düzey B-ağacı sayfaları içerir.Her zaman 0 yığın. |
tree_page_latch_wait_in_ms |
bigint |
Alt kümesini page_latch_wait_in_ms , sadece üst -düzey B-ağacı sayfaları içerir.Her zaman 0 yığın. |
tree_page_io_latch_wait_count |
bigint |
Alt kümesini page_io_latch_wait_count , sadece üst -düzey B-ağacı sayfaları içerir.Her zaman 0 yığın. |
tree_page_io_latch_wait_in_ms |
bigint |
Alt kümesini page_io_latch_wait_in_ms , sadece üst -düzey B-ağacı sayfaları içerir.Her zaman 0 yığın. |
page_compression_attempt_count |
bigint |
Sayfa düzey bir tablo, dizin ya da dizinli görünümiçin sıkıştırma belirli bölümler için değerlendirildi sayfa sayısı.Önemli oranda tasarruf değil elde edilebilir çünkü sıkıştırılan olmayan sayfaları içerir. |
page_compression_success_count |
bigint |
Bir tablo, dizin ya da dizinli görünümbelirli bölümleri sayfa sıkıştırması kullanılarak sıkıştırılan veriler sayfa sayısı. |
Açıklamalar
Bu dinamik yönetimi nesne arası uygulamak ve dış uygulama ilişkili parametreleri kabul etmez.
Kullanabileceğiniz sys.dm_db_index_operational_stats kullanıcılar gerekir okumak veya bir tablo, dizin veya bölüm yazmak için bekleyin ve tablolar veya önemli g/Ç etkinliği veya etkin noktalar karşılaşıyor dizinleri tanımlamak olduğunu saat izlemek için.
Aşağıdaki sütunları çekişmealanları tanımlamak için kullanın.
tablo ya da dizin bölümüne ortak erişim desen çözümlemek için, bu sütunları kullanın:
leaf_insert_count
leaf_delete_count
leaf_update_count
leaf_ghost_count
range_scan_count
singleton_lookup_count
Latching ve kilitleme çekişmetanımlamak için bu sütunları kullanın:
page_latch_wait_count ve page_latch_wait_in_ms
Bu sütun, dizin veya yığın ve çekişme, anlamlı değer mandalçekişme olup olmadığını belirtin.
row_lock_count ve page_lock_count
Kaç kez bu sütunları belirtmek Veritabanı Altyapısı çalıştı edinmenin satır ve sayfa kilitleri.
row_lock_wait_in_ms ve page_lock_wait_in_ms
Bu sütun, dizin veya yığın ve çekişme, anlamlı değer kilitçekişme olup olmadığını belirtin.
Bir dizin veya yığın bölümünde fiziksel giriş çıkışları istatistikleri çözümlemek için
page_io_latch_wait_count ve page_io_latch_wait_in_ms
Bu sütunları fiziksel giriş çıkışları dizin getirmek için verilmiş ya da belleğe yığın sayfaları ve kaç çıkışları verilmiş gösteriyor.
Sütun açıklamalar
Değerler lob_orphan_create_count ve lob_orphan_insert_count her zaman eşit olması gerekir.
Sütun değeri lob_fetch_in_pages ve lob_fetch_in_bytes dahil sütunlar bir veya daha fazla lob sütunları içeren kümelenmemiş dizinler için sıfırdan büyük olabilir.Daha fazla bilgi için, bkz. Eklenen sütunlar ile dizin.Benzer şekilde, sütun değeri row_overflow_fetch_in_pages ve row_overflow_fetch_in_bytes dizin satır kapalı itildiği sütunlar içeriyorsa, kümelenmemiş dizinler için 0'dan büyük olabilir.Daha fazla bilgi için, bkz. 8 kb aşan satır taşma veri.
Meta veri önbelleğindeki sayaçları Sıfırla nasıl
Tarafından döndürülen verileri sys.dm_db_index_operational_stats yığın veya dizin temsil eden meta veriler önbellek nesnesi kullanılabilir olduğu sürece bulunmaktadır.Bu veriler, ne kalıcı ya da sonucuna tutarlı değil.Yani, bu sayaçlar, dizin veya kullanılmış veya dizinin en son ne zaman kullanıldığı olup olmadığını belirlemek için kullanamazsınız.Bu konuda daha fazla bilgi için bkz: sys.dm_db_index_usage_stats (Transact-SQL).
Her sütun için her yığın veya dizin için meta veriler meta veriler önbelleğine hazırlanmıştır ve istatistikleri cache nesnesi meta veriler önbelleğinden kaldırılıncaya kadar birikmiş sıfıra küme değerlerdir.Bu nedenle, active yığın veya dizin büyük olasılıkla her zaman kendi meta veriler önbellekte vardır ve toplu sayımları örnek bu yana etkinliği yansıtması SQL Server son başlatılmasından.Kullanıldığı gibi daha az etkin bir yığın veya dizin için meta veriler önbellek içine ve dışına taşıyacak.Sonuç olarak, olabilir veya değerler kullanılabilir olmayabilir.Bir dizin bellekten kaldırılması ve artık işlevtarafından bildirilecek ilgili istatistiklerin neden olur.Diğer dizin DDL işlemleri sıfıra ayarlamak için istatistik değeri neden olabilir.
Parametre değerleri belirtmek için sistem işlevleri kullanma
Kullanabileceğiniz Transact-SQL işlevleri DB_ID ve OBJECT_ID için bir değer belirtmek için database_id ve object_id parametreleri.Ancak, bu işlevler için geçersiz değerler geçirerek istenmeyen sonuçlarneden olabilir.Her zaman DB_ID veya OBJECT_ID kullandığınızda geçerli bir kimliği döndürüldüğünden emin olun.Daha fazla bilgi için açıklamalar bölümüne bakın sys.dm_db_index_physical_stats (Transact-SQL).
İzinler
Aşağıdaki izinleri gerektirir:
Veritabanı içinde belirtilen nesne üzerinde denetim izni
@ Nesne joker kullanarak belirtilen veritabanı içindeki tüm nesneler hakkında bilgi dönmek için Görünüm veritabanı durumu izinobject_id = null
@ Veritabanı joker kullanarak tüm veritabanları hakkında bilgi dönmek için Görünüm server state iznidatabase_id = null
Görünüm veritabanı durumunu verme tüm nesneleri veritabanında belirli nesneler üzerinde engellendi herhangi bir denetim izin alınmadan iade sağlar.
Belirli nesneler üzerinde verilen herhangi bir denetim izinler ne olursa olsun iade için veritabanındaki tüm nesneleri görünüm veritabanı durumu engelleme izin vermez.Ayrıca, ne zaman veritabanı joker @database_id= null belirtilmişse, veritabanı atlanmıştır.
Daha fazla bilgi için, bkz. Dinamik yönetimi görünümler ve işlevler (Transact-SQL).
Örnekler
A.Belirtilen tabloiçin bilgi döndüren
Aşağıdaki örnek tüm dizinler ve bölümleri için bilgi verir Person.Address tablo AdventureWorks2008R2 veritabanı.Bu sorguyu yürüttükten gerektirir, en azından Denetim izni üzerinde Person.Address tablo.
Önemli |
---|
Kullanırken Transact-SQL işlevleri DB_ID ve OBJECT_ID bir parametre değeri döndürmek için her zaman sağlamak geçerli bir kimliği döner.Veritabanı veya nesne adı, ne zaman onlar yok veya yanlış yazılmış gibi bulunamazsa, her iki işlevi null döndürür.sys.dm_db_index_operational_statsişlev null tüm veritabanları veya tüm nesneleri belirtir bir joker karakter değeri yorumlar. Bu kasıtlı olmayan bir işlem olduğundan, bu bölümdeki örnekler veritabanı ve nesne kimliklerini belirlemek için en güvenli yolu göstermektedir. |
DECLARE @db_id int;
DECLARE @object_id int;
SET @db_id = DB_ID(N'AdventureWorks2008R2');
SET @object_id = OBJECT_ID(N'AdventureWorks2008R2.Person.Address');
IF @db_id IS NULL
BEGIN;
PRINT N'Invalid database';
END;
ELSE IF @object_id IS NULL
BEGIN;
PRINT N'Invalid object';
END;
ELSE
BEGIN;
SELECT * FROM sys.dm_db_index_operational_stats(@db_id, @object_id, NULL, NULL);
END;
GO
B.Tüm tablolar ve dizinler için bilgi döndüren
Aşağıdaki örnek için tüm tablolar ve dizinler örnek içinde bilgi verir SQL Server.Bu sorguyu yürüttükten görünüm server state izni gerektirir.
SELECT * FROM sys.dm_db_index_operational_stats(NULL, NULL, NULL, NULL);
GO
Ayrıca bkz.