verirsys.dm_db_index_operational_statsTüm (Transact-sql)
Geçerli alt düzey I/o, kilitleme, kilitlenen ve erişim yöntemi etkinliği, bir tablo veya dizin her bölüm için veritabanında döndürür.
Transact-SQL Sözdizim Kuralları
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ı Kımlığı. database_idis smallint. Geçerli girişleri olan bir veritabanı, boş, kimlik numarası 0 ya da varsayılan. Varsayılan değer 0'dır. null, 0 ve varsayılan eşdeğer bu bağlamda değerlerdir.Tüm veritabanları için bilgileri örneğinde dönmek için null belirtmek SQL Server. Eğer null belirtmek database_id, null da belirtmeniz gerekir object_id, index_id, ve partition_number.
Yerleşik işlev DB_ID belirtilebilir. DB_ID veritabanı adı belirtmeden kullanırken, geçerli veritabanı uyumluluk düzeyi 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 ve görünüm, null kimlik numarası 0 ya da varsayılan. Varsayılan değer 0'dır. 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. Eğer null belirtmek object_id, null da belirtmeniz gerekir index_idve partition_number.
index_id| 0 | NULL | -1 | VARSAYILAN
Dizin Kımlığı. index_idis int. Geçerli girişleri olan kimlik numarasını dizin, 0, object_idbir yığın null ise -1 veya default. Varsayılan değer null, -1, -1 ve varsayılan eşdeğer değerleri bu bağlamda.Temel tablo veya görünüm için tüm dizinler için önbelleğe alınmış bilgileri döndürmek için null belirtin. Eğer null belirtmek index_id, null da belirtmeniz gerekir partition_number.
partition_number | NULL | 0 | VARSAYILAN
Bölüm numarası nesne. partition_numberis int. Geçerli girişleri olan partion_numberbir dizin veya yığın, null, 0 ya da varsayılan. Varsayılan değer 0'dır. 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 sahip partition_number1'e ayarlayın.
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 Kımlığı. |
index_id |
int |
Dizin veya yığın Kımlığı. 0 = Yığın |
partition_number |
int |
dizin veya yığın içinde 1 tabanlı bölüm numarası. |
leaf_insert_count |
bigint |
Yaprak düzeyi ekler toplam sayısı. |
leaf_delete_count |
bigint |
Yaprak düzeyi siler toplam sayısı. |
leaf_update_count |
bigint |
Yaprak düzeyi güncelleştirmelerin toplam sayısı. |
leaf_ghost_count |
bigint |
Toplu olarak işaretlenmiş bir yaprak düzeyi satır sayısı silinir, ancak henüz kaldırıldı. Bu satır kümesi aralıklarla temizleme iş parçacığı tarafından kaldırılır. Bu değer, bir olağanüstü anlık yalıtım hareket nedeniyle korunur satırları içermez. |
nonleaf_insert_count |
bigint |
Yukarıda yaprak düzeyi ekler toplam sayısı. 0 = Yığın ya da columnstore |
nonleaf_delete_count |
bigint |
Toplu siler yukarıda yaprak düzeyi sayısı. 0 = Yığın ya da columnstore |
nonleaf_update_count |
bigint |
Toplu güncelleştirmeleri yukarıda yaprak düzeyi sayısı. 0 = Yığın ya da columnstore |
leaf_allocation_count |
bigint |
Yaprak düzeyi sayfa ayırma dizin veya yığın içinde toplam sayısı. Bir dizin için bir sayfa bölünmüş bir sayfa ayırma karşılık gelir. |
nonleaf_allocation_count |
bigint |
Toplu neden tarafından sayfa sayfa ayırma sayısı yaprak düzey yukarısındaki böler. 0 = Yığın ya da columnstore |
leaf_page_merge_count |
bigint |
Toplam sayfa sayısı yaprak düzeyinde birleştirir. Columnstore dizin her zaman 0. |
nonleaf_page_merge_count |
bigint |
Toplam sayfa sayısı, yaprak düzeyi birleştirir. 0 = Yığın ya da columnstore |
range_scan_count |
bigint |
Aralığı ve tablo taramaları toplu sayısı, dizin veya yığın üzerinde başladı. |
singleton_lookup_count |
bigint |
Dizin veya yığın tek satır alışlardan toplam sayısı. |
forwarded_fetch_count |
bigint |
Ön kayıt getirildi satır sayısı. 0 = Dizinler |
lob_fetch_in_pages |
bigint |
Büyük nesne (lob) sayfalarında toplam sayısı lob_data ayırma birim erişilmiştir. Bu sayfa türü sütunlarda 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). |
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ümelendirilmemiş dizini |
lob_orphan_insert_count |
bigint |
Sahipsiz lob değerleri toplu işlemleri sırasında eklenen toplam sayısı. 0 = Kümelendirilmemiş dizini |
row_overflow_fetch_in_pages |
bigint |
Satır taşma veri sayfaları toplam sayısı row_overflow_data ayırma birimi erişilmiştir. Bu sayfa türü sütunlarda depolanan verileri içeren varchar(n), nvarchar(n), varbinary(n), ve sql_variantsatır kapalı itilmiş oldu. |
row_overflow_fetch_in_bytes |
bigint |
Alınan satır taşma veri 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 içinde bir sayfaya sığacak yapmak için satır itilir satır taşma veri sütun değerleri sayısı. |
column_value_pull_in_row_count |
bigint |
Toplu lob veri ve satır çekilir satır taşma veri değerleri sütun sayısı. Güncelleştirme işlemi kayıt alanını boşaltır ve bir veya daha fazla satır kapalı değerleri lob_data veya row_overflow_data ayırma birimleri IN_ROW_DATA ayırma birimi için çekme olanağı sağlayan bu oluşur. |
row_lock_count |
bigint |
Istenen satır kilitlerin toplam sayısı. |
row_lock_wait_count |
bigint |
Toplu kaç kez Veritabanı Altyapısıbir satır kilidi bekledi. |
row_lock_wait_in_ms |
bigint |
Toplam milisaniye sayısı Veritabanı Altyapısıbir satır kilidi bekledi. |
page_lock_count |
bigint |
İstenen sayfa kilitlerin toplam sayısı. |
page_lock_wait_count |
bigint |
Toplu kaç kez Veritabanı Altyapısıbir sayfa kilidi bekledi. |
page_lock_wait_in_ms |
bigint |
Toplam milisaniye sayısı Veritabanı Altyapısıbir sayfa kilidi bekledi. |
index_lock_promotion_attempt_count |
bigint |
Toplu kaç kez Veritabanı Altyapısıkilitleri yöneticinize iletin denediniz. |
index_lock_promotion_count |
bigint |
Toplu kaç kez Veritabanı Altyapısıkilitleri escalated. |
page_latch_wait_count |
bigint |
Toplu kaç kez Veritabanı Altyapısı, mandal çakışması nedeniyle bekledi. |
page_latch_wait_in_ms |
bigint |
Toplam milisaniye sayısı Veritabanı Altyapısı, mandal çakışması nedeniyle bekledi. |
page_io_latch_wait_count |
bigint |
Toplu kaç kez Veritabanı Altyapısıbir I/O sayfa mandal bekledi. |
page_io_latch_wait_in_ms |
bigint |
Toplam milisaniye sayısı Veritabanı Altyapısıbir sayfa I/O mandal bekledi. |
tree_page_latch_wait_count |
bigint |
Alt page_latch_wait_count , sadece üst düzey b ağaç sayfaları içerir. Bir yığın veya columnstore dizini her zaman 0. |
tree_page_latch_wait_in_ms |
bigint |
Alt page_latch_wait_in_ms , sadece üst düzey b ağaç sayfaları içerir. Bir yığın veya columnstore dizini her zaman 0. |
tree_page_io_latch_wait_count |
bigint |
Alt page_io_latch_wait_count , sadece üst düzey b ağaç sayfaları içerir. Bir yığın veya columnstore dizini her zaman 0. |
tree_page_io_latch_wait_in_ms |
bigint |
Alt page_io_latch_wait_in_ms , sadece üst düzey b ağaç sayfaları içerir. Bir yığın veya columnstore dizini her zaman 0. |
page_compression_attempt_count |
bigint |
SAYFA düzeyi bir tablo, dizin veya dizin oluşturulmuş görünüm için sıkıştırma belirli bölümler için değerlendirildi sayfa sayısı. Önemli derecede tasarruf değil elde edilebilir çünkü sıkıştırılmış değil sayfalar içerir. Columnstore dizin her zaman 0. |
page_compression_success_count |
bigint |
Bir tablo, dizin veya dizin oluşturulmuş görünüm belirli bölümleri sayfa sıkıştırması kullanılarak sıkıştırılan veriler sayfa sayısı. Columnstore dizin her zaman 0. |
Açıklamalar
Bu dinamik yönetimi nesne cross apply ve outer apply ilişkili parametreleri kabul etmez.
Sen-ebilmek kullanma verirsys.dm_db_index_operational_statsTüm kullanıcılara okuma veya bir tablo, dizin veya bölüm için yazma ve tablolar veya önemli g/Ç etkinliği ya da sıcak noktalar karşılaşıyor dizinleri tanımlamak için bekleyeceği süreyi izlemek için.
Aşağıdaki sütunları Çekişmesi alanları belirlemek için kullanın.
Tablo veya 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
Kilitlenen ve kilitleme çakışması tanı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şmesi anlam mandal çakışması olup olmadığını belirtin.
row_lock_count ve page_lock_count
Kaç kez bu sütunları gösterir Veritabanı Altyapısısatır ve sayfa kilitleri alın denedi.
row_lock_wait_in_ms ve page_lock_wait_in_ms
Bu sütun, dizin veya yığın ve Çekişmesi anlam kilit çakışması 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ütun, fiziksel giriş çıkışları dizin getirmek için verilmiş veya belleğe yığın sayfaları ve kaç giriş çıkışları verilmiş olup olmadığını belirtin.
Sütun açıklamalar
Değerleri lob_orphan_create_count ve lob_orphan_insert_count her zaman eşit olmalıdır.
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ümelendirilmemiş dizinler için sıfırdan büyük olabilir. Daha fazla bilgi için, bkz. Eklenen sütunlar ile dizin oluşturmak. Benzer şekilde, sütun değeri row_overflow_fetch_in_pages ve row_overflow_fetch_in_bytes dizin satır kapalı itti sütun içeriyorsa 0 kümelendirilmemiş dizinler için daha büyük olabilir.
Meta veri önbelleğindeki sayaçlarının nasıl sıfırlanır
Tarafından döndürülen verileri verirsys.dm_db_index_operational_statsTüm sürece yığın veya dizin temsil eden meta veri önbellek nesnesi kullanılabilir vardır. Bu veriler, ne kalıcı ya da sonucuna tutarlı değil. Yani bir dizin ya da değil kullanılmış veya dizin en son ne zaman kullanılan olup olmadığını belirlemek için aşağıdaki sayaçları kullanamazsınız. Bu konuda daha fazla bilgi için bkz: sys.dm_db_index_usage_stats (Transact-sql).
Değerleri her sütun, her yığın veya dizin için meta verileri meta veriler önbelleğe getirilir ve istatistik önbellek nesnesi meta veri önbelleğinden kaldırılana kadar birikmiş olan sıfır olarak ayarlanır. Bu nedenle, bir aktif yığın veya dizin muhtemelen her zaman meta verileri önbellekte olacak ve toplam sayıları örneği beri etkinliği yansıtması SQL Serverson başlatılmasından. Kullanıldığı gibi daha az aktif yığın veya dizin için meta veri önbellek dışında ve hareket edecek. Sonuç olarak, o veya değerler kullanılabilir olmayabilir. Bir dizin bırakarak bellekten kaldırılır ve artık işlev tarafından bildirilecek ilgili istatistikler neden olur. Diğer dizin ddl işlemleri sıfıra sıfırlanması için istatistik değeri neden olabilir.
Parametre değerleri belirtmek için sistem işlevleri kullanma
Sen-ebilmek kullanma Transact-SQLişlevleri DB_ID ve OBJECT_ID için bir değer belirtmek için database_idve object_idparametreleri. Ancak, bu işlevler için geçerli olmayan değerlerin geçen, istenmeyen sonuçlara neden olabilir. Her zaman DB_ID veya OBJECT_ID kullandığınızda, geçerli bir kimlik verdiğini 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 VIEW database state izniobject_id = null
@ Veritabanı joker kullanarak tüm veritabanları hakkında bilgi dönmek için VIEW server state izni database_id = null
VIEW database state izni verme, ne olursa olsun herhangi bir denetimi izinleri belirli nesneler üzerinde engellendi Döndürülecek Veritabanı tüm nesneleri sağlar.
VIEW database state inkar belirli nesneler üzerinde herhangi bir kontrolü izinler alınmaksızın iade edilecek veritabanındaki tüm nesneler izin vermez. Ayrıca, ne zaman veritabanı joker @database\_id= null belirtilirse, 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 tablo için bilgi döndüren
Aşağıdaki örnek, tüm dizinler ve bölümler için bilgi verir Person.Addressiçinde masa AdventureWorks2012veritabanı. Bu sorguyu yürüttükten gerektirir, en azından DENETIM izni üzerinde Person.Addresstablosu.
Önemli |
---|
Ne zaman kullandığınız Transact-SQLişlevleri DB_ID ve OBJECT_ID bir parametre değeri döndürmek için her zaman sağlamak geçerli bir kimlik döndürülür. Veritabanı veya nesne adı, ne zaman onlar yok veya yanlış yazılmış gibi bulunamazsa, iki işlev null döndürür. Verirsys.dm_db_index_operational_statsTüm işlevi null tüm veritabanları veya tüm nesneler belirtir bir joker karakter değeri yorumlar. Bu bölümdeki örneklerde, bu kasıtsız bir işlem olduğundan, veritabanı ve nesne kimliklerini belirlemek için güvenli bir şekilde görülmektedir. |
DECLARE @db_id int;
DECLARE @object_id int;
SET @db_id = DB_ID(N'AdventureWorks2012');
SET @object_id = OBJECT_ID(N'AdventureWorks2012.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 örneği içinde bilgi verir SQL Server. Bu sorguyu yürüttükten VIEW server state izni gerektirir.
SELECT * FROM sys.dm_db_index_operational_stats(NULL, NULL, NULL, NULL);
GO
Ayrıca bkz.
Başvuru
Dinamik yönetimi görünümler ve işlevler (Transact-sql)
Ilgili dinamik yönetimi görünümler ve işlevler (Transact-sql) dizini
sys.dm_db_index_physical_stats (Transact-sql)
sys.dm_db_index_usage_stats (Transact-sql)
sys.dm_os_latch_statshemen (Transact-sql)
sys.dm_db_partition_stats (Transact-sql)
allocation_units (Transact-sql)