Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
132 lines (130 sloc) 12.6 KB
using System.Collections.Generic;
namespace KMO.Resources
{
public static class Latches
{
public static Dictionary<string, string> GetLatchesDictionary()
{
Dictionary<string, string> latchesDictionary = new Dictionary<string, string>();
latchesDictionary.Add("ALLOC_CREATE_RINGBUF", "Used internally by SQL Server to initialize the synchronization of the creation of an allocation ring buffer.");
latchesDictionary.Add("ALLOC_CREATE_FREESPACE_CACHE", "Used to initialize the synchronization of internal freespace caches for heaps.");
latchesDictionary.Add("ALLOC_CACHE_MANAGER", "Used to synchronize internal coherency tests.");
latchesDictionary.Add("ALLOC_FREESPACE_CACHE", "Used to synchronize the access to a cache of pages with available space for heaps and binary large objects (BLOBs). Contention on latches of this class can occur when multiple connections try to insert rows into a heap or BLOB at the same time. You can reduce this contention by partitioning the object. Each partition has its own latch. Partitioning will distribute the inserts across multiple latches.");
latchesDictionary.Add("ALLOC_EXTENT_CACHE", "Used to synchronize the access to a cache of extents that contains pages that are not allocated. Contention on latches of this class can occur when multiple connections try to allocate data pages in the same allocation unit at the same time. This contention can be reduced by partitioning the object of which this allocation unit is a part.");
latchesDictionary.Add("ACCESS_METHODS_DATASET_PARENT", "Used to synchronize child dataset access to the parent dataset during parallel operations.");
latchesDictionary.Add("ACCESS_METHODS_HOBT_FACTORY", "Used to synchronize access to an internal hash table.");
latchesDictionary.Add("ACCESS_METHODS_HOBT", "Used to synchronize access to the in-memory representation of a HoBt.");
latchesDictionary.Add("ACCESS_METHODS_HOBT_COUNT", "Used to synchronize access to a HoBt page and row counters.");
latchesDictionary.Add("ACCESS_METHODS_HOBT_VIRTUAL_ROOT", "Used to synchronize access to the root page abstraction of an internal B-tree.");
latchesDictionary.Add("ACCESS_METHODS_CACHE_ONLY_HOBT_ALLOC", "Used to synchronize worktable access.");
latchesDictionary.Add("ACCESS_METHODS_BULK_ALLOC", "Used to synchronize access within bulk allocators.");
latchesDictionary.Add("ACCESS_METHODS_SCAN_RANGE_GENERATOR", "Used to synchronize access to a range generator during parallel scans.");
latchesDictionary.Add("ACCESS_METHODS_KEY_RANGE_GENERATOR", "Used to synchronize access to read-ahead operations during key range parallel scans.");
latchesDictionary.Add("APPEND_ONLY_STORAGE_INSERT_POINT", "Used to synchronize inserts in fast append-only storage units.");
latchesDictionary.Add("APPEND_ONLY_STORAGE_FIRST_ALLOC", "Used to synchronize the first allocation for an append-only storage unit.");
latchesDictionary.Add("APPEND_ONLY_STORAGE_UNIT_MANAGER", "Used for internal data structure access synchronization within the fast append-only storage unit manager.");
latchesDictionary.Add("APPEND_ONLY_STORAGE_MANAGER", "Used to synchronize shrink operations in the fast append-only storage unit manager.");
latchesDictionary.Add("BACKUP_RESULT_SET", "Used to synchronize parallel backup result sets.");
latchesDictionary.Add("BACKUP_TAPE_POOL", "Used to synchronize backup tape pools.");
latchesDictionary.Add("BACKUP_LOG_REDO", "Used to synchronize backup log redo operations.");
latchesDictionary.Add("BACKUP_INSTANCE_ID", "Used to synchronize the generation of instance IDs for backup performance monitor counters.");
latchesDictionary.Add("BACKUP_MANAGER", "Used to synchronize the internal backup manager.");
latchesDictionary.Add("BACKUP_MANAGER_DIFFERENTIAL", "Used to synchronize differential backup operations with DBCC.");
latchesDictionary.Add("BACKUP_OPERATION", "Used for internal data structure synchronization within a backup operation, such as database, log, or file backup.");
latchesDictionary.Add("BACKUP_FILE_HANDLE", "Used to synchronize file open operations during a restore operation.");
latchesDictionary.Add("BUFFER", "Used to synchronize short term access to database pages. A buffer latch is required before reading or modifying any database page. Buffer latch contention can indicate several issues, including hot pages and slow I/Os. This latch class covers all possible uses of page latches. sys.dm_os_wait_stats makes a difference between page latch waits that are caused by I/O operations and read and write operations on the page.");
latchesDictionary.Add("BUFFER_POOL_GROW", "Used for internal buffer manager synchronization during buffer pool grow operations.");
latchesDictionary.Add("DATABASE_CHECKPOINT", "Used to serialize checkpoints within a database.");
latchesDictionary.Add("CLR_PROCEDURE_HASHTABLE", "Internal use only.");
latchesDictionary.Add("CLR_UDX_STORE", "Internal use only.");
latchesDictionary.Add("CLR_DATAT_ACCESS", "Internal use only.");
latchesDictionary.Add("CLR_XVAR_PROXY_LIST", "Internal use only.");
latchesDictionary.Add("DBCC_CHECK_AGGREGATE", "Internal use only.");
latchesDictionary.Add("DBCC_CHECK_RESULTSET", "Internal use only.");
latchesDictionary.Add("DBCC_CHECK_TABLE", "Internal use only.");
latchesDictionary.Add("DBCC_CHECK_TABLE_INIT", "Internal use only.");
latchesDictionary.Add("DBCC_CHECK_TRACE_LIST", "Internal use only.");
latchesDictionary.Add("DBCC_FILE_CHECK_OBJECT", "Internal use only.");
latchesDictionary.Add("DBCC_PERF", "Used to synchronize internal performance monitor counters.");
latchesDictionary.Add("DBCC_PFS_STATUS", "Internal use only.");
latchesDictionary.Add("DBCC_OBJECT_METADATA", "Internal use only.");
latchesDictionary.Add("DBCC_HASH_DLL", "Internal use only.");
latchesDictionary.Add("EVENTING_CACHE", "Internal use only.");
latchesDictionary.Add("FCB", "Used to synchronize access to the file control block.");
latchesDictionary.Add("FCB_REPLICA", "Internal use only.");
latchesDictionary.Add("FGCB_ALLOC", "Use to synchronize access to round robin allocation information within a filegroup.");
latchesDictionary.Add("FGCB_ADD_REMOVE", "Use to synchronize access to filegroups for ADD and DROP file operations.");
latchesDictionary.Add("FILEGROUP_MANAGER", "Internal use only.");
latchesDictionary.Add("FILE_MANAGER", "Internal use only.");
latchesDictionary.Add("FILESTREAM_FCB", "Internal use only.");
latchesDictionary.Add("FILESTREAM_FILE_MANAGER", "Internal use only.");
latchesDictionary.Add("FILESTREAM_GHOST_FILES", "Internal use only.");
latchesDictionary.Add("FILESTREAM_DFS_ROOT", "Internal use only.");
latchesDictionary.Add("LOG_MANAGER", "Internal use only.");
latchesDictionary.Add("FULLTEXT_DOCUMENT_ID", "Internal use only.");
latchesDictionary.Add("FULLTEXT_DOCUMENT_ID_TRANSACTION", "Internal use only.");
latchesDictionary.Add("FULLTEXT_DOCUMENT_ID_NOTIFY", "Internal use only.");
latchesDictionary.Add("FULLTEXT_LOGS", "Internal use only.");
latchesDictionary.Add("FULLTEXT_CRAWL_LOG", "Internal use only.");
latchesDictionary.Add("FULLTEXT_ADMIN", "Internal use only.");
latchesDictionary.Add("FULLTEXT_AMDIN_COMMAND_CACHE", "Internal use only.");
latchesDictionary.Add("FULLTEXT_LANGUAGE_TABLE", "Internal use only.");
latchesDictionary.Add("FULLTEXT_CRAWL_DM_LIST", "Internal use only.");
latchesDictionary.Add("FULLTEXT_CRAWL_CATALOG", "Internal use only.");
latchesDictionary.Add("FULLTEXT_FILE_MANAGER", "Internal use only.");
latchesDictionary.Add("DATABASE_MIRRORING_REDO", "Internal use only.");
latchesDictionary.Add("DATABASE_MIRRORING_SERVER", "Internal use only.");
latchesDictionary.Add("DATABASE_MIRRORING_CONNECTION", "Internal use only.");
latchesDictionary.Add("DATABASE_MIRRORING_STREAM", "Internal use only.");
latchesDictionary.Add("QUERY_OPTIMIZER_VD_MANAGER", "Internal use only.");
latchesDictionary.Add("QUERY_OPTIMIZER_ID_MANAGER", "Internal use only.");
latchesDictionary.Add("QUERY_OPTIMIZER_VIEW_REP", "Internal use only.");
latchesDictionary.Add("RECOVERY_BAD_PAGE_TABLE", "Internal use only.");
latchesDictionary.Add("RECOVERY_MANAGER", "Internal use only.");
latchesDictionary.Add("SECURITY_OPERATION_RULE_TABLE", "Internal use only.");
latchesDictionary.Add("SECURITY_OBJPERM_CACHE", "Internal use only.");
latchesDictionary.Add("SECURITY_CRYPTO", "Internal use only.");
latchesDictionary.Add("SECURITY_KEY_RING", "Internal use only.");
latchesDictionary.Add("SECURITY_KEY_LIST", "Internal use only.");
latchesDictionary.Add("SERVICE_BROKER_CONNECTION_RECEIVE", "Internal use only.");
latchesDictionary.Add("SERVICE_BROKER_TRANSMISSION", "Internal use only.");
latchesDictionary.Add("SERVICE_BROKER_TRANSMISSION_UPDATE", "Internal use only.");
latchesDictionary.Add("SERVICE_BROKER_TRANSMISSION_STATE", "Internal use only.");
latchesDictionary.Add("SERVICE_BROKER_TRANSMISSION_ERRORS", "Internal use only.");
latchesDictionary.Add("SSBXmitWork", "Internal use only.");
latchesDictionary.Add("SERVICE_BROKER_MESSAGE_TRANSMISSION", "Internal use only.");
latchesDictionary.Add("SERVICE_BROKER_MAP_MANAGER", "Internal use only.");
latchesDictionary.Add("SERVICE_BROKER_HOST_NAME", "Internal use only.");
latchesDictionary.Add("SERVICE_BROKER_READ_CACHE", "Internal use only.");
latchesDictionary.Add("SERVICE_BROKER_WAITFOR_MANAGER", "Internal use only.");
latchesDictionary.Add("SERVICE_BROKER_WAITFOR_TRANSACTION_DATA", "Internal use only.");
latchesDictionary.Add("SERVICE_BROKER_TRANSMISSION_TRANSACTION_DATA", "Internal use only.");
latchesDictionary.Add("SERVICE_BROKER_TRANSPORT", "Internal use only.");
latchesDictionary.Add("SERVICE_BROKER_MIRROR_ROUTE", "Internal use only.");
latchesDictionary.Add("TRACE_ID", "Internal use only.");
latchesDictionary.Add("TRACE_AUDIT_ID", "Internal use only.");
latchesDictionary.Add("TRACE", "Internal use only.");
latchesDictionary.Add("TRACE_CONTROLLER", "Internal use only.");
latchesDictionary.Add("TRACE_EVENT_QUEUE", "Internal use only.");
latchesDictionary.Add("TRANSACTION_DISTRIBUTED_MARK", "Internal use only.");
latchesDictionary.Add("TRANSACTION_OUTCOME", "Internal use only.");
latchesDictionary.Add("NESTING_TRANSACTION_READONLY", "Internal use only.");
latchesDictionary.Add("NESTING_TRANSACTION_FULL", "Internal use only.");
latchesDictionary.Add("MSQL_TRANSACTION_MANAGER", "Internal use only.");
latchesDictionary.Add("DATABASE_AUTONAME_MANAGER", "Internal use only.");
latchesDictionary.Add("UTILITY_DYNAMIC_VECTOR", "Internal use only.");
latchesDictionary.Add("UTILITY_SPARSE_BITMAP", "Internal use only.");
latchesDictionary.Add("UTILITY_DATABASE_DROP", "Internal use only.");
latchesDictionary.Add("UTILITY_DYNAMIC_MANAGER_VIEW", "Internal use only.");
latchesDictionary.Add("UTILITY_DEBUG_FILESTREAM", "Internal use only.");
latchesDictionary.Add("UTILITY_LOCK_INFORMATION", "Internal use only.");
latchesDictionary.Add("VERSIONING_TRANSACTION", "Internal use only.");
latchesDictionary.Add("VERSIONING_TRANSACTION_LIST", "Internal use only.");
latchesDictionary.Add("VERSIONING_TRANSACTION_CHAIN", "Internal use only.");
latchesDictionary.Add("VERSIONING_STATE", "Internal use only.");
latchesDictionary.Add("VERSIONING_STATE_CHANGE", "Internal use only.");
latchesDictionary.Add("KTM_VIRTUAL_CLOCK", "Internal use only.");
return latchesDictionary;
}
}
}