Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
Microsoft Fabric'te SQL Veritabanı
Tüm mandal beklemeleri hakkında sınıflara göre düzenlenmiş bilgiler döndürür.
Uyarı
Bunu Azure Synapse Analytics veya Analytics Platform System (PDW) olarak adlandırmak için sys.dm_pdw_nodes_os_latch_stats adını kullanın. Bu söz dizimi, Azure Synapse Analytics'teki sunucusuz SQL havuzu tarafından desteklenmez.
| Sütun adı | Veri türü | Description |
|---|---|---|
| latch_class | nvarchar(60) | Mandal sınıfının adı. |
| waiting_requests_count | bigint | Bu derste mandalı bekleme sayısı. Bu sayaç, mandal beklemesi süreci başladığında artırılır. |
| wait_time_ms | bigint | Bu sınıfta mandalıtlarda toplam bekleme süresi, milisaniye cinsinden. Not: Bu sütun, bir mandatal bekleme sırasında ve bir mandatal bekleme sonunda her beş dakikada bir güncellenir. |
| max_wait_time_ms | bigint | Bir bellek nesnesinin bu mandalda beklediği maksimum süre. Bu değer alışılmadık derecede yüksekse, iç bir çıkmaz olduğunu gösterebilir. |
| pdw_node_id | int |
için geçerlidir: Azure Synapse Analytics, Analiz Platformu Sistemi (PDW) Bu dağıtımın üzerinde olduğu düğümün tanımlayıcısı. |
Permissions
SQL Server ve SQL Yönetilen Örneği'ne VIEW SERVER STATE izni gerekir.
SQL Veritabanı Temel,S0 ve S1 hizmet hedeflerinive elastik havuzlardaki veritabanları için, sunucu yöneticisi hesabı, Microsoft Entra yönetici hesabı veya ##MS_ServerStateReader##sunucu rolü üyeliği gereklidir. Diğer tüm SQL Veritabanı hizmet hedeflerinde, veritabanında VIEW DATABASE STATE izni veya ##MS_ServerStateReader## sunucu rolü üyeliği gereklidir.
SQL Server 2022 ve üzeri için izinler
Sunucuda SUNUCU PERFORMANS DURUMUNU GÖRÜNTÜLE izni gerektirir.
Açıklamalar
sys.dm_os_latch_stats, farklı latch sınıflarının göreceli bekleme sayıları ve bekleme sürelerini inceleyerek kilitleme çatışmasının kaynağını belirlemek için kullanılabilir. Bazı durumlarda, mandalı sorununu çözebilir veya azaltabilirsiniz. Ancak, Microsoft Müşteri Destek Hizmetleri'ne başvurmanızı gerektirecek durumlar olabilir.
sys.dm_os_latch_stats içeriğini aşağıdaki şekilde DBCC SQLPERF sıfırlayabilirsiniz:
DBCC SQLPERF ('sys.dm_os_latch_stats', CLEAR);
GO
Bu, tüm sayaçları 0 olarak sıfırlar.
Uyarı
SQL Server yeniden başlatılırsa bu istatistikler kalıcı olmaz. İstatistiklerin en son sıfırlanmasından veya SQL Server'ın başlatılmasından bu yana tüm veriler birikmeli olur.
Latches
Latch, çeşitli SQL Server bileşenleri tarafından kullanılan kilide benzer bir iç hafif senkronizasyon nesnesidir. Mandal, öncelikle tampon veya dosya erişimi gibi işlemler sırasında veritabanı sayfalarını senkronize etmek için kullanılır. Her mandal, tek bir tahsis ünitesiyle ilişkilendirilir.
Bir latch beklemesi, bir latch talebinin hemen verilemeyeceği durumlarda oluşur; çünkü mandal, çelişkili modda başka bir iş parçacığı tarafından tutulur. Kilitlerin aksine, bir mandal işlemden hemen sonra, hatta yazma işlemlerinde bile serbest bırakılır.
Kilitler, bileşenler ve kullanım alanlarına göre sınıflara ayrılır. Belirli bir sınıfın sıfır veya daha fazla kilitlenmesi SQL Server örneğinde herhangi bir zamanda mevcut olabilir.
Uyarı
sys.dm_os_latch_stats hemen onaylanan veya beklemeden başarısız olan kilitleme taleplerini takip etmez.
Aşağıdaki tablo, çeşitli mandal sınıflarının kısa açıklamalarını içermektedir.
| Mandal sınıfı | Description |
|---|---|
| ALLOC_CREATE_RINGBUF | SQL Server tarafından dahili olarak bir tahsis halka tamponunun oluşturulmasının senkronizasyonunu başlatmak için kullanılır. |
| ALLOC_CREATE_FREESPACE_CACHE | Yığınlar için dahili boş alan önbelleklerinin senkronizasyonunu başlatmak için kullanılır. |
| ALLOC_CACHE_MANAGER | İç tutarlılık testlerini senkronize etmek için kullanılır. |
| ALLOC_FREESPACE_CACHE | Sayfa önbelleğine erişimi ve yığınlar ve ikili büyük nesneler (BLOB'lar) için kullanılabilir alanı senkronize etmek için kullanılır. Bu sınıfın mandalı üzerindeki anlaşmazlık, birden fazla bağlantının aynı anda bir yığına veya BLOB'a satır eklemeye çalışmasıyla meydana gelebilir. Bu tartışmayı nesneyi bölmeye bölerek azaltabilirsiniz. Her bölümün kendi mandalı vardır. Bölümleme, eklemeleri birden fazla mandal arasında dağıtacaktır. |
| ALLOC_EXTENT_CACHE | Tahsis edilmemiş sayfaları içeren bir sınırlar önbelleğine erişimi senkronize etmek için kullanılır. Bu sınıfın mandalları üzerindeki anlaşmazlık, birden fazla bağlantı aynı tahsis biriminde veri sayfalarını aynı anda tahsis etmeye çalıştığında meydana gelebilir. Bu tartışma, bu tahsis biriminin parçası olduğu nesnenin bölünmesiyle azaltılabilir. |
| ACCESS_METHODS_DATASET_PARENT | Paralel işlemler sırasında ana veri setine çocuk veri seti erişimini senkronize etmek için kullanılır. |
| ACCESS_METHODS_HOBT_FACTORY | Erişimi dahili bir hash tablosuna senkronize etmek için kullanılır. |
| ACCESS_METHODS_HOBT | Bir HoBt'nin bellek içi temsiline erişimi senkronize etmek için kullanılır. |
| ACCESS_METHODS_HOBT_COUNT | HoBt sayfasına ve satır sayaclarına erişimi senkronize etmek için kullanılır. |
| ACCESS_METHODS_HOBT_VIRTUAL_ROOT | İç bir B-ağacının kök sayfa soyutlamasına erişimi senkronize etmek için kullanılır. |
| ACCESS_METHODS_CACHE_ONLY_HOBT_ALLOC | Çalışma masası erişimini senkronize etmek için kullanılır. |
| ACCESS_METHODS_BULK_ALLOC | Toplu ayırıcılar içinde erişimi senkronize etmek için kullanılır. |
| ACCESS_METHODS_SCAN_RANGE_GENERATOR | Paralel taramalar sırasında menzil üreteçine erişimi senkronize etmek için kullanılır. |
| ACCESS_METHODS_KEY_RANGE_GENERATOR | Anahtar aralık paralel taramaları sırasında önden okuma işlemlerine erişimi senkronize etmek için kullanılır. |
| APPEND_ONLY_STORAGE_INSERT_POINT | Hızlı eklenti depolama birimlerinde eklemeleri senkronize etmek için kullanılır. |
| APPEND_ONLY_STORAGE_FIRST_ALLOC | Sadece ekleyici depolama birimi için ilk tahsisi senkronize etmek için kullanılır. |
| APPEND_ONLY_STORAGE_UNIT_MANAGER | Hızlı, sadece ekleyici depolama birimi yöneticisi içinde dahili veri yapısı erişim senkronizasyonu için kullanılır. |
| APPEND_ONLY_STORAGE_MANAGER | Sadece hızlı ek depolama birimi yöneticisinde küçültme işlemlerini senkronize etmek için kullanılır. |
| BACKUP_RESULT_SET | Paralel yedekleme sonuç setlerini senkronize etmek için kullanılır. |
| BACKUP_TAPE_POOL | Yedek bant havuzlarını senkronize etmek için kullanıldı. |
| BACKUP_LOG_REDO | Yedek günlük tekrar işlemlerini senkronize etmek için kullanılır. |
| BACKUP_INSTANCE_ID | Yedek performans monitörü sayacları için örnek kimliklerinin oluşturulmasını senkronize etmek için kullanılır. |
| BACKUP_MANAGER | İç yedekleme yöneticisini senkronize etmek için kullanılır. |
| BACKUP_MANAGER_DIFFERENTIAL | DBCC ile diferansiyel yedekleme işlemlerini senkronize etmek için kullanılır. |
| BACKUP_OPERATION | Veritabanı, günlük veya dosya yedekleme gibi yedekleme işlemlerinde dahili veri yapısı senkronizasyonu için kullanılır. |
| BACKUP_FILE_HANDLE | Geri yükleme işlemi sırasında dosya açma işlemlerini senkronize etmek için kullanılır. |
| ARABELLEK | Veritabanı sayfalarına kısa süreli erişimi senkronize etmek için kullanılır. Herhangi bir veritabanı sayfasını okumak veya değiştirmek için bir tampon mandalı gereklidir. Buffer mandalı sorunu, sıcak sayfalar ve yavaş giriş/girişler gibi çeşitli sorunlara işaret edebilir. Bu mandal, sayfa mandallarının tüm olası kullanımlarını kapsar. sys.dm_os_wait_stats, I/O işlemleri nedeniyle oluşan sayfa latch beklemeleri ile sayfadaki okuma ve yazma işlemleri arasında fark yaratır. |
| BUFFER_POOL_GROW | Buffer havuzu büyüme operasyonları sırasında dahili tampon yöneticisi senkronizasyonu için kullanılır. |
| DATABASE_CHECKPOINT | Bir veritabanında kontrol noktalarını serileştirmek için kullanılır. |
| CLR_PROCEDURE_HASHTABLE | Yalnızca iç kullanım. |
| CLR_UDX_STORE | Yalnızca iç kullanım. |
| CLR_DATAT_ACCESS | Yalnızca iç kullanım. |
| CLR_XVAR_PROXY_LIST | Yalnızca iç kullanım. |
| DBCC_CHECK_AGGREGATE | Yalnızca iç kullanım. |
| DBCC_CHECK_RESULTSET | Yalnızca iç kullanım. |
| DBCC_CHECK_TABLE | Yalnızca iç kullanım. |
| DBCC_CHECK_TABLE_INIT | Yalnızca iç kullanım. |
| DBCC_CHECK_TRACE_LIST | Yalnızca iç kullanım. |
| DBCC_FILE_CHECK_OBJECT | Yalnızca iç kullanım. |
| DBCC_PERF | İç performans monitörü sayacılarını senkronize etmek için kullanılır. |
| DBCC_PFS_STATUS | Yalnızca iç kullanım. |
| DBCC_OBJECT_METADATA | Yalnızca iç kullanım. |
| DBCC_HASH_DLL | Yalnızca iç kullanım. |
| EVENTING_CACHE | Yalnızca iç kullanım. |
| FCB | Dosya kontrol bloğuna erişimi senkronize etmek için kullanılır. |
| FCB_REPLICA | Yalnızca iç kullanım. |
| FGCB_ALLOC | Bir dosya grubu içinde round robin tahsis bilgilerine erişimi senkronize etmek için kullanılır. |
| FGCB_ADD_REMOVE | Dosya gruplarına erişimi ekleme, bırakma, büyütme ve küçültme işlemleri için senkronize etmek için kullanılır. |
| FILEGROUP_MANAGER | Yalnızca iç kullanım. |
| FILE_MANAGER | Yalnızca iç kullanım. |
| FILESTREAM_FCB | Yalnızca iç kullanım. |
| FILESTREAM_FILE_MANAGER | Yalnızca iç kullanım. |
| FILESTREAM_GHOST_FILES | Yalnızca iç kullanım. |
| FILESTREAM_DFS_ROOT | Yalnızca iç kullanım. |
| LOG_MANAGER | Yalnızca iç kullanım. |
| FULLTEXT_DOCUMENT_ID | Yalnızca iç kullanım. |
| FULLTEXT_DOCUMENT_ID_TRANSACTION | Yalnızca iç kullanım. |
| FULLTEXT_DOCUMENT_ID_NOTIFY | Yalnızca iç kullanım. |
| FULLTEXT_LOGS | Yalnızca iç kullanım. |
| FULLTEXT_CRAWL_LOG | Yalnızca iç kullanım. |
| FULLTEXT_ADMIN | Yalnızca iç kullanım. |
| FULLTEXT_AMDIN_COMMAND_CACHE | Yalnızca iç kullanım. |
| FULLTEXT_LANGUAGE_TABLE | Yalnızca iç kullanım. |
| FULLTEXT_CRAWL_DM_LIST | Yalnızca iç kullanım. |
| FULLTEXT_CRAWL_CATALOG | Yalnızca iç kullanım. |
| FULLTEXT_FILE_MANAGER | Yalnızca iç kullanım. |
| DATABASE_MIRRORING_REDO | Yalnızca iç kullanım. |
| DATABASE_MIRRORING_SERVER | Yalnızca iç kullanım. |
| DATABASE_MIRRORING_CONNECTION | Yalnızca iç kullanım. |
| DATABASE_MIRRORING_STREAM | Yalnızca iç kullanım. |
| QUERY_OPTIMIZER_VD_MANAGER | Yalnızca iç kullanım. |
| QUERY_OPTIMIZER_ID_MANAGER | Yalnızca iç kullanım. |
| QUERY_OPTIMIZER_VIEW_REP | Yalnızca iç kullanım. |
| RECOVERY_BAD_PAGE_TABLE | Yalnızca iç kullanım. |
| RECOVERY_MANAGER | Yalnızca iç kullanım. |
| SECURITY_OPERATION_RULE_TABLE | Yalnızca iç kullanım. |
| SECURITY_OBJPERM_CACHE | Yalnızca iç kullanım. |
| SECURITY_CRYPTO | Yalnızca iç kullanım. |
| SECURITY_KEY_RING | Yalnızca iç kullanım. |
| SECURITY_KEY_LIST | Yalnızca iç kullanım. |
| SERVICE_BROKER_CONNECTION_RECEIVE | Yalnızca iç kullanım. |
| SERVICE_BROKER_TRANSMISSION | Yalnızca iç kullanım. |
| SERVICE_BROKER_TRANSMISSION_UPDATE | Yalnızca iç kullanım. |
| SERVICE_BROKER_TRANSMISSION_STATE | Yalnızca iç kullanım. |
| SERVICE_BROKER_TRANSMISSION_ERRORS | Yalnızca iç kullanım. |
| SSBXmitWork | Yalnızca iç kullanım. |
| SERVICE_BROKER_MESSAGE_TRANSMISSION | Yalnızca iç kullanım. |
| SERVICE_BROKER_MAP_MANAGER | Yalnızca iç kullanım. |
| SERVICE_BROKER_HOST_NAME | Yalnızca iç kullanım. |
| SERVICE_BROKER_READ_CACHE | Yalnızca iç kullanım. |
| SERVICE_BROKER_WAITFOR_MANAGER | Bekleme kuyruklarının örnek düzeyindeki haritasını senkronize etmek için kullanılır. Her veritabanı kimliği, Veritabanı Sürümü ve Kuyruk Kimliği tuplesi için bir kuyruk vardır. Bu sınıfın mandalları üzerinde anlaşmazlık, birçok bağlantı şu durumda olduğunda meydana gelebilir: BEKLER(RECEIVE) bekleme durumunda; WAITFOR(RECEIVE) çağrısı yapıyor; WAITFOR molasını aşmak; bir mesaj almak; WAITFOR(RECEIVE)'i içeren işlemi yapmak veya geri almak gerekir; WAITFOR(RECEIVE) bekleme durumundaki iş parçacıklarının sayısını azaltarak anlaşmazlığı azaltabilirsiniz. |
| SERVICE_BROKER_WAITFOR_TRANSACTION_DATA | Yalnızca iç kullanım. |
| SERVICE_BROKER_TRANSMISSION_TRANSACTION_DATA | Yalnızca iç kullanım. |
| SERVICE_BROKER_TRANSPORT | Yalnızca iç kullanım. |
| SERVICE_BROKER_MIRROR_ROUTE | Yalnızca iç kullanım. |
| TRACE_ID | Yalnızca iç kullanım. |
| TRACE_AUDIT_ID | Yalnızca iç kullanım. |
| İzlemek | Yalnızca iç kullanım. |
| TRACE_CONTROLLER | Yalnızca iç kullanım. |
| TRACE_EVENT_QUEUE | Yalnızca iç kullanım. |
| TRANSACTION_DISTRIBUTED_MARK | Yalnızca iç kullanım. |
| TRANSACTION_OUTCOME | Yalnızca iç kullanım. |
| NESTING_TRANSACTION_READONLY | Yalnızca iç kullanım. |
| NESTING_TRANSACTION_FULL | Yalnızca iç kullanım. |
| MSQL_TRANSACTION_MANAGER | Yalnızca iç kullanım. |
| DATABASE_AUTONAME_MANAGER | Yalnızca iç kullanım. |
| UTILITY_DYNAMIC_VECTOR | Yalnızca iç kullanım. |
| UTILITY_SPARSE_BITMAP | Yalnızca iç kullanım. |
| UTILITY_DATABASE_DROP | Yalnızca iç kullanım. |
| UTILITY_DYNAMIC_MANAGER_VIEW | Yalnızca iç kullanım. |
| UTILITY_DEBUG_FILESTREAM | Yalnızca iç kullanım. |
| UTILITY_LOCK_INFORMATION | Yalnızca iç kullanım. |
| VERSIONING_TRANSACTION | Yalnızca iç kullanım. |
| VERSIONING_TRANSACTION_LIST | Yalnızca iç kullanım. |
| VERSIONING_TRANSACTION_CHAIN | Yalnızca iç kullanım. |
| VERSIONING_STATE | Yalnızca iç kullanım. |
| VERSIONING_STATE_CHANGE | Yalnızca iç kullanım. |
| KTM_VIRTUAL_CLOCK | Yalnızca iç kullanım. |
Uyarı
Belgelerde genellikle dizinlere başvuruda B ağacı terimi kullanılır. Rowstore dizinlerinde Veritabanı Altyapısı bir B+ ağacı uygular. Bu, sütun deposu dizinleri veya bellek için iyileştirilmiş tablolardaki dizinler için geçerli değildir. Daha fazla bilgi için SQL Server ve Azure SQL dizin mimarisi ve tasarım kılavuzuna bakın.
Ayrıca Bkz.
DBCC SQLPERF (Transact-SQL)
SQL Server İşletim Sistemiyle İlgili Dinamik Yönetim Görünümleri (Transact-SQL)
SQL Server, Latches Object