sys.dm_db_index_operational_stats (Transact-SQL)
Geçerli alt düzey g/Ç, kilitleme latching ve tablo ya da dizin, her bölüm için erişim yöntem etkinliği veritabanında döndürür.
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
ID of the database.database_id is smallint.Geçerli girişleri, null bir veritabanı KIMLIK numarası olan 0 ya da VARSAYıLAN.Varsayılan değer 0'dir.NULL, 0 ve VARSAYıLAN eşdeğer bu bağlamda değerlerdir.Tüm veritabanları için örnekte döndürmesini NULL belirtin. SQL Server. NULL için belirttiğiniz database_id, NULL için de belirtmeniz gerekir object_id, index_id, ve partition_number.
Yerleşik işlev db_id belirtilebilir.Bir veritabanı adı belirtmeden DB_ID kullanırken, geçerli veritabanında uyumluluk düzeyini 90 olması gerekir.
object_id | null | 0 | VARSAYILAN
Object ID of the table or view the index is on.object_id is int.Bir tablo veya görünümü, NULL, KIMLIK numarası geçerli girişleri olan 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ındaki tüm tablolar ve görünümler için önbelleğe alınmış bilgileri dönmek için NULL belirtin.NULL için belirttiğiniz object_id, NULL için de belirtmeniz gerekir index_id ve partition_number.
index_id | 0 | null | -1 | VARSAYILAN
ID of the index.index_id is int.Geçerli girişleri KIMLIK numarası 0 bir dizin olduğundan object_id bir yığın, NULL ise -1 veya DEFAULT. NULL, -1, -1 varsayılandır ve VARSAYıLAN eşdeğer değer bu bağlamda.Tüm dizinler bir temel tablo veya Görünüm için önbelleğe alınmış bilgi için NULL belirtin.NULL için belirttiğiniz index_id, NULL için de belirtmeniz gerekir partition_number.
partition_number | null | 0 | VARSAYILAN
Partition number in the object.partition_number is int.Geçerli girişleri olan partion_number bir dizin veya yığın, NULL, 0 ya da 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 NULL belirtin.
partition_number 1 tabanlıdır.Bir nonpartitioned dizin veya öbek partition_number 1 olarak 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 KIMLIĞI. |
index_id |
int |
Dizin veya öbek KIMLIĞI. 0 Yığın = |
partition_number |
int |
Dizin veya öbek 1 tabanlı bir bölüm numarası. |
leaf_insert_count |
bigint |
Yaprak düzey ekler toplam sayısı. |
leaf_delete_count |
bigint |
Yaprak düzey siler toplam sayısı. |
leaf_update_count |
bigint |
Yaprak düzey güncelleştirmelerin toplam sayısı. |
leaf_ghost_count |
bigint |
Toplu olarak işaretlenmiş yaprak düzey satırların sayımını silindi, 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 bekleyen anlık görüntü görüntü yalıtımı işlem nedeniyle korunur satırları içerir.Anlık görüntü ayırma işlemleri hakkında daha fazla bilgi için bkz: Satır Veritabanı Altyapısı'ndaki Sürüm tabanlı yalıtım düzeyleri. |
nonleaf_insert_count |
bigint |
Yukarıdaki yaprak düzey ekler toplam sayısı. 0 Yığın = |
nonleaf_delete_count |
bigint |
Yukarıdaki yaprak düzey siler toplam sayısı. 0 Yığın = |
nonleaf_update_count |
bigint |
Yukarıdaki güncelleştirmelerin toplam sayısı yaprak düzey. 0 Yığın = |
leaf_allocation_count |
bigint |
Yaprak düzey sayfa ayırma dizin veya öbek toplam sayısı. Bir dizin için bölme için sayfa bir sayfa tahsisat karşılık gelir. |
nonleaf_allocation_count |
bigint |
Neden sayfa sayfa ayırmalar toplam sayısı, yaprak düzey böler. 0 Yığın = |
leaf_page_merge_count |
bigint |
Toplam sayfa sayısı yaprak birleştirmelerinin düzey. |
nonleaf_page_merge_count |
bigint |
Toplam sayfa sayısı, yaprak düzey birleştirir. 0 Yığın = |
range_scan_count |
bigint |
Aralık ve tablo taramaları toplam sayısı, dizin veya yığın üzerinde başlatıldı. |
singleton_lookup_count |
bigint |
Dizin veya öbek tek satır alışlardan toplam sayısı. |
forwarded_fetch_count |
bigint |
Ileten kaydı getirildi satır sayısı. 0 Dizin = |
lob_fetch_in_pages |
bigint |
Büyük bir nesne (LOB) sayfaları toplam sayısı, LOB_DATA alınan ayırma birimi.Bu sayfaları türündeki sütunlarında depolanan verileri içerir. text, ntext, image, varchar(max), nvarchar(max), varbinary(max), ve xml. Daha fazla bilgi için bkz:(Transact-SQL) veri türleri.Ayırma birimleri hakkında daha fazla bilgi için bkz: Tablo ve dizin kuruluşu. |
lob_fetch_in_bytes |
bigint |
LOB veri baytlarının toplam sayısı alındı. |
lob_orphan_create_count |
bigint |
Toplu işlemlerde oluşturulan artık LOB değerlerinin toplam sayısı. 0 Kümelenmemiş dizin = |
lob_orphan_insert_count |
bigint |
Toplu işlemleri sırasında eklenen artık LOB değerlerinin toplam sayısı. 0 Kümelenmemiş dizin = |
row_overflow_fetch_in_pages |
bigint |
Veri sayfası satırı taşma toplam sayısı, ROW_OVERFLOW_DATA alınan ayırma birimi. Bu sayfaları türündeki sütunlarında depolanan verileri içerir. varchar(n), nvarchar(n), varbinary(n), ve sql_variant Satır kapalı itilmiş. Daha fazla bilgi için bkz:Satır-8 KB Exceeding veri taşması.Ayırma birimleri hakkında daha fazla bilgi için bkz: Tablo ve dizin kuruluşu. |
row_overflow_fetch_in_bytes |
bigint |
satır taşması verisi baytlarının toplam sayısı alındı. |
column_value_push_off_row_count |
bigint |
LOB veri ve devre dışı bir sayfa sığacak eklenen veya güncelleştirilen bir satır oluşturmak için satır itildiği satır taşması verisi sütun değerlerinin toplam sayısı. |
column_value_pull_in_row_count |
bigint |
LOB verileri ve satır çektiği satır taşması verisi sütun değerlerinin toplam sayısı.Bir güncelleştirme işlemi, bir kayıttaki alan boşaltır ve bir veya daha çok satır kapalı değerler IN_ROW_DATA ayırma birimine LOB_DATA veya ROW_OVERFLOW_DATA tahsisat birimlerinden çıkarma olanağı sağlar bu oluşur.Ayırma birimleri hakkında daha fazla bilgi için bkz: Tablo ve dizin kuruluşu. |
row_lock_count |
bigint |
Istenen satır kilitlerin toplam sayısı. |
row_lock_wait_count |
bigint |
Toplam kaç kez Database Engine bekledi bir satır kilidi. |
row_lock_wait_in_ms |
bigint |
Toplam milisaniye Database Engine bir satırda bekledi kilit. |
page_lock_count |
bigint |
Istenen sayfa kilitlerin toplam sayısı. |
page_lock_wait_count |
bigint |
Toplam kaç kez Database Engine bir sayfada bekledi kilit. |
page_lock_wait_in_ms |
bigint |
Toplam milisaniye Database Engine bir sayfa kilitlendiğinde beklendi. |
index_lock_promotion_attempt_count |
bigint |
Toplam kaç kez Database Engine kilitlerin yöneticinize iletin denediniz. |
index_lock_promotion_count |
bigint |
Toplam kaç kez Database Engine kilitlerin escalated. |
page_latch_wait_count |
bigint |
Toplam kaç kez Database Engine , mandal çakışması nedeniyle beklendi. |
page_latch_wait_in_ms |
bigint |
Milisaniye sayısı Database Engine , mandal çakışması nedeniyle beklendi. |
page_io_latch_wait_count |
bigint |
Toplam kaç kez Database Engine bir g/Ç sayfa mandal üzerinde beklendi. |
page_io_latch_wait_in_ms |
bigint |
Milisaniye sayısı Database Engine bir sayfa g/Ç mandal beklendi. |
tree_page_latch_wait_count |
bigint |
alt küme küme kümesi page_latch_wait_count yalnızca üst düzey B-ağacı sayfaları içeren. Her zaman 0 yığın. |
tree_page_latch_wait_in_ms |
bigint |
alt küme küme kümesi page_latch_wait_in_ms yalnızca üst düzey B-ağacı sayfaları içeren. Her zaman 0 yığın. |
tree_page_io_latch_wait_count |
bigint |
alt küme küme kümesi page_io_latch_wait_count yalnızca üst düzey B-ağacı sayfaları içeren. Her zaman 0 yığın. |
tree_page_io_latch_wait_in_ms |
bigint |
alt küme küme kümesi page_io_latch_wait_in_ms yalnızca üst düzey B-ağacı sayfaları içeren. Her zaman 0 yığın. |
page_compression_attempt_count |
bigint |
Sayfa düzeyinde sıkıştırma belirli bölümlerini için Hesaplandı sayfa sayısı bir tablo, dizin veya dizinli görünüm.Önemli bir tasarruf değil kazanılacağı, çünkü sıkıştırılan olmayan sayfaları içerir. |
page_compression_success_count |
bigint |
Bir tablo, dizin veya dizinli görünüm, belirli bölümler için SAYFA sıkıştırma kullanılarak sıkıştırılan veriler sayfa sayısı. |
Remarks
Bu dinamik Yönetim nesne çapraz APPLY ve OUTER APPLY ilişkili parametreleri kabul etmez.
Kullanabileceğiniz sys.dm_db_index_operational_stats kullanıcıların okumak veya tabloya, yazmak için bekleyeceği süreyi izlemek için dizin veya bölümlemek ve tablolar veya önemli bir g/Ç etkinliği veya etkin noktalar karşılaşmış olan dizinleri belirleyin.
Aşağıdaki sütunları Çekişme alanları tanımlamak için kullanın.
Tablo ya da dizin bölümü için genel bir 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 Çekişme kilitleme tanımlamak için , bu sütunları kullanın:
page_latch_wait_count and page_latch_wait_in_ms
Bu sütun, dizin veya öbek ve anlamlı değer, Çekişme mandal çakışması olup olmadığını belirtin.
row_lock_count and page_lock_count
Bu sütun, kaç kez belirtmek Database Engine satır ve sayfa kilitlerin almaya çalıştı.
row_lock_wait_in_ms and page_lock_wait_in_ms
Bu sütun, dizin veya öbek ve anlamlı değer, Çekişme kilit çakışması olup olmadığını belirtin.
Bir dizin veya öbek bölümünde fiziksel g/Ç istatistiklerinin çözümlemek için
page_io_latch_wait_count and page_io_latch_wait_in_ms
Bu sütun, fiziksel g/Ç dizin getirmek için verilmiş mi belleğe öbek sayfaları ve kaç g/Ç verilen gösterir.
Sütun açıklamalar
Değerler lob_orphan_create_count and lob_orphan_insert_count her zaman eşit olması gerekir.
Sütun değeri lob_fetch_in_pages and lob_fetch_in_bytes olarak sütunlar bir veya daha fazla LOB sütunları içeren kümelenmemiş dizin için sıfırdan büyük olabilir.Daha fazla bilgi için bkz:Içerilen sütunları içeren dizin.Benzer şekilde, sütun değeri row_overflow_fetch_in_pages and row_overflow_fetch_in_bytes , dizini devre dışı satır itildiği sütunlar içeriyorsa, kümelenmemiş dizin için 0'dan büyük olabilir.Daha fazla bilgi için bkz:Satır-8 KB Exceeding veri taşması.
meta veriler önbelleğindeki sayaçları Sıfırla
Döndürülen verileri sys.dm_db_index_operational_stats , yalnızca yığın veya dizini temsil eden meta veriler önbellek nesnesi kullanılabilir olarak bulunmaktadır.Bu, sürekli ve tutarlı bir işlem veridir.Yani, bu sayaçlar, dizin veya kullanıldı veya dizinin en son 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).
Değerleri her sütun için meta veriler öbek veya dizin için meta verileri önbelleğe hazırlanmıştır ve önbellek nesnesi meta veri önbelleğinden kaldırılıncaya kadar istatistikleri biriktirilir sıfır olarak küme.Bu nedenle, etkin öbek ya da dizin büyük olasılıkla her zaman meta veriler önbellekte vardır ve bu yana örnek toplu sayımları etkinliğini yansıtır SQL Server Son başlatıldı. Kullanıldığı gibi daha az etkin öbek veya dizin için meta veriler önbelleği içine ve dışına taşır.Sonuç olarak, olabilir veya değerler kullanılabilir olmayabilir.Bir dizini bırakma bellekten kaldırılması ve artık işlev tarafından raporlanacak ilgili istatistikleri neden olur.Diğer dizin DDL işlemleri değerini sıfır olarak sıfırlamaya istatistikleri neden olabilir.
Parametre değerleri belirtmek için sistem işlevleri kullanma
Kullanabileceğiniz Transact-SQL işlevleri db_id and object_id için bir değer belirtmek içindatabase_id ve object_id Parametreler. Ancak, bu işlev için geçersiz değer geçirerek istenmeyen sonuçlara neden olabilir.Her zaman DB_ID veya OBJECT_ID kullandığınızda geçerli bir KIMLIĞI döndürüldü 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
VIEW DATABASE DURUM izni @ nesne joker karakter kullanarak belirtilen veritabanı, içindeki tüm nesneler hakkında bilgi döndürür.object_id = null
@ Veritabanını joker karakter kullanarak, tüm veritabanları hakkında bilgi dönmek için VIEW SERVER DURUM iznidatabase_id = null
VIEW DATABASE DURUM verme, belirli nesneler üzerinde engellendi, herhangi bir DENETIM izinleri olsun döndürülecek veritabanındaki tüm nesneler sağlar.
VIEW DATABASE DURUM engelleme, belirli nesneler üzerinde istediğiniz DENETIM izinler ne olursa olsun döndürülecek veritabanındaki tüm nesnelere izin vermiyor.Ayrıca, zaman veritabanı joker @database\_id= NULL belirtilirse, veritabanı atlandı.
Daha fazla bilgi için bkz:Dinamik bir yönetim görünümleri'ni ve işlevler (Transact-SQL).
Örnekler
C.Belirtilen tablo için bilgi döndürülüyor
Aşağıdaki örnek, tüm dizinler ve bölümlerini bilgilerini verir Person.Address ' de tablo AdventureWorks Veritabanı. Bu sorgu yürütülürken, üzerinde en az, bir DENETIM iznine gerektirir Person.Address Tablo.
Important Note: |
---|
Kullandığınızda Transact-SQL işlevleri DB_ID ve OBJECT_ID bir parametre değeri döndürmek için geçerli bir KIMLIĞI döndürülen her zaman emin olun. Bir, yok veya yanlış yazılmış, her iki işlevleri, NULL döndürecektir gibi veritabanı veya nesne adı bulunamıyor.The sys.dm_db_index_operational_stats işlev interprets NULL as a wildcard value that specifies all databases or all objects.Bu kasıtlı olmayan bir işlem olduğundan, bu bölümdeki örneklerde, veritabanı ve nesne kimlikleri belirlemek için güvenli bir yolu gösterilmektedir. |
b.Tüm tablolar ve dizinler için bilgi döndürülüyor
Aşağıdaki örnek, tüm tablolar ve dizinler içinde örneği için bilgi verir SQL Server. Bu sorguyu yürüttükten VIEW SERVER DURUM izni gerektirir.
See Also