Aracılığıyla paylaş


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.

Topic link iconTransact-SQL sözdizimi kuralları

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 noteImportant 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.