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.

Konu bağlantısı simgesi 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 notÖ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)

sys.indexes (Transact-sql)

Kavramlar

İzleme ve performans ayarlama