Tuesday, August 07, 2018

SQL Server Find all Constraints

Here is some useful code to identify all Constraints by table or by Database:


— To Display all the Constraints in the Database
SELECT OBJECT_NAME(object_id) AS ConstraintName,
SCHEMA_NAME(schema_id) AS SchemaName,
OBJECT_NAME(parent_object_id) AS TableName,
type_desc AS ConstraintType
FROM sys.objects
WHERE type_desc LIKE %CONSTRAINT’
— To Display all the Constraints in table ‘Employee’
SELECT OBJECT_NAME(object_id) AS ConstraintName,
SCHEMA_NAME(schema_id) AS SchemaName,
type_desc AS ConstraintType
FROM sys.objects
WHERE type_desc LIKE ‘%CONSTRAINT’ AND OBJECT_NAME(parent_object_id)=‘Employee’

Friday, February 16, 2018

Real World SQL Server DBA Interview Questions

These are base on 25 years of interviews and interviewing for SQL Server jobs.

1. What are the 3 Recovery Models and when do we use them?

  • Full. This is the one we use for Production. Backs up Data and Logs.
  • Simple. Good for Dev or any machine where the data is not important and does not change. Backs up Data but not logs and just gives logs a Checkpoint.
  • Bulk Logged.  Rarely used it does not log big bulk imports. If you have huge imports that can be rerun if there is a problem this can be useful but in 25 years of consulting I have never seen any company use this. 


2. What is Checkpoint?



3. Define ACID?
a. A RDBMS combines Atomicity, Consistency, Isolation, and Durable. This tends to be an old fashioned question in Interviews but it still shows up.

4. What is the Difference between Delete and Truncate?

  • Delete is logged and Truncate is not. Truncate is faster but you cannot roll it back. 
  • Truncate is DDL and Truncate is DML.


5. What is DBCC?
This is a holdover from Sybase and was retained and rewritten in 2008.  Pre 2008 it was Database Consistency Checks and after it became Database Console Commands. These include Maintenance, Miscellaneous, Informational and Validation. Best to memorize a few, Interviewers often ask for 3 or 4 examples.
DBCC CHECKALLOC
DBCC CHECKCATALOG
DBCC CHECKCONSTRAINTS
DBCC CHECKDB
DBCC CHECKFILEGROUP
DBCC CHECKIDENT
DBCC CHECKTABLE
DBCC CLEANTABLE
DBCC DBREINDEX Deprecated use  ALTER INDEX  instead.
DBCC dllname (FREE) Unloads the specified extended stored procedure DLL from memory without shutting down the server.
DBCC DROPCLEANBUFFERS
DBCC FLUSHAUTHCACHE Used with KILL DATABASE CONNECTION after password change.
DBCC FREEPROCCACHE
DBCC FREESESSIONCACHE
DBCC FREESYSTEMCACHE
DBCC HELP
DBCC INDEXDEFRAG look at ALTER INDEX ALL ON DBName.TableName
REORGANIZE ; instead. Can be done online.
DBCC INPUTBUFFER
DBCC OPENTRAN
DBCC OUTPUTBUFFER
DBCC PDW_SHOWEXECUTIONPLAN Gives the SQL Server execution plan for a query by SPID.
DBCC PDW_SHOWPARTITIONSTATS
DBCC PDW_SHOWSPACEUSED Gives the number of rows, disk space reserved, and disk space used for a specific table, or for all tables in a Azure Synapse Analytics or Analytics Platform System (PDW) database.
DBCC PROCCACHE
DBCC SHOW_STATISTICS
DBCC SHOWCONTIG DEPRICATED use sys.dm_db_index_physical_stats instead.
DBCC SHRINKDATABASE Best advice, Don't! When you shrink the DB you fragment the Indexes. That shoots performance. If your company cannot afford more disk space it is time to float your resume. If you are doing it to move a file to a new file share look at DBCC SHRINKFILE.
DBCC SHRINKFILE If you need to move a file this an option.
DBCC SHRINKLOG: Use DBCC SHRINKLOG to reduce fragmentation and reduce the log size.
DBCC SQLPERF It gives transaction log space usage statistics for all databases. But a big benefit is that you can use it to reset wait and latch statistics without rebooting the server.
DBCC TRACEOFF Disables the specified trace flags globally.
DBCC TRACEON - Trace Flags
DBCC TRACEON
DBCC TRACESTATUS
DBCC UPDATEUSAGE SQL Server table and Index counts are not always accurate in a high volume system or after a bulk copy. If you need accurate numbers use this.
DBCC USEROPTIONS Shows some good data but most people just use it for checking the Isolation Level.


6. Types of Replication?

  • Transactional, 
  • Merge, 
  • Snapshot. 
  • Peer to Peer

7. When should we use Query Hints?



8. What is a Sparse Column and when do you use it.

  • It is used for column that is rarely populated. When it equal 0 or null it takes zero space but when it is populated it takes 4 bytes more space than each one. If you have Sparse Columns match them with Filtered Indexes.


9. Name 4 ways to create a Database

  • TSQL, SSMS, Restore a DB, the Copy DB Wizard
  • Stupid Question: Real world DBAs are rarely if ever going to use a Wizard and only SSMS in Dev. Restoring a Database is common and reasonable as is a TSQL script but Wizards and GUI do not offer a record of the action. 

10. What are Magic Tables?

  • Inserted, Updated and Deleted tables built into SQL Server to hold recent changes.  They are primarily used for DML Triggers. 
  • Stupid Question: SQL Server does not call them Magic Tables in their documentation. This term is commonly used by Programmers. I don’t like it but it is asked in Interviews so don’t get caught on it. 


11. Fill Factor

  • You can set the Fill Factor when you Build, Reorganize or Rebuild the Index. It often seems like a good idea to adjust this. However there are some Caveats:
  • If it is an Auto Incrementing field such as an Identity Cluster ID adding space will hurt performance since the pages don’t split, they just keep adding the end page.
  • If the Column is subject to many changes the fill Factor only helps the First Page split and then it splits 50/50 until you rebuild or reorg.
  • Overall fiddling with Fill Factor is a waste of time.


12. What is TempDB used for?

  • For Temp objects tables, indexes, also building Indexes, Group By, Order By, and Union/Union All.
  • Also if you have heap tables this is where the Table Scans trigger Hash Tables.


13. TempDB Configuration

  • New versions of SQL Server default to one TempDB file for each Logical Core or 8 whichever is less. If you are using a 2019 or 2022 Database created in an earlier version you would benefit from increasing the number of TempDB files correspondingly.


14. What kind of Indexes does SQL Server support.

  • Memory Optimized Non Clustered, 
  • Clustered, 
  • Non Clustered, 
  • ColumnStore, 
  • XML, 
  • Hash Index (Since 2014), 
  • Filtered, 
  • Full Text, 
  • Sparse,
  • Unique.


15. How many Indexes can a Table have.

  • 1 Clustered and 999 (2008 - 2022)
  • Stupid Question: Asking how many Custers is fine but asking the maximum number of Non Clustered is silly. Ten Indexes is a lot and 50 is unlikely except in very rare cases. So why ask a question about something a DBA never needs to know. 


16. How many Clustered Indexes can a Table have?

  • Just one, because the Cluster sets the order of the table.


17. Does a Small Table need a Cluster?

  • Yes. Some old documentation says No but SQL Server runs faster if every table has a Cluster. If SQL Server Query Optimizer can always ignore the Cluster if it determines it is better. 
  • If the table is ever queried it should have a clustered indexed. However tables not normally queried DO NOT benefit from a cluster with faster inserts.


18. What sort of Fields makes the best Primary Key?

  • The more compact the PK the more efficient. Using an Int or Big Int, Identity works great. Composite Unique Keys used to be popular. They can still be OK if they are not too wide. 
  • SQL Server uses 8K pages So the performance improves with more indexes on an 8 K page. A Big Int  is twice as big as an Int. But on large tables a GUID is twice as big as a Big Int so it may be a choice. Try to avoid large compound index clusters using Varchars/NVarchars.


19. Name ways to Import Data besides SSIS?

  • BCP, 
  • Bulk Import, 
  • Linked Server, 
  • Open Rowset, 
  • Open Data Source. 
  • DB Library, 
  • ODBC, 
  • JDBC and likely others.
  • I am not sure why I hear this question but it is out there.


20. What is the Default Port for SQL Server.

  • 1433 but for security reasons companies commonly change the port. 


21. What is the Order of Lock Escalation?

  • Row Lock to Table lock. Or Page Lock to Table lock. But not Row Lock  to Page Lock.


22. When was Synonyms Introduced?

  • SQL Server 2005.


23. What is the difference between Union and Union All?

  • Union All is faster but it includes Nulls. Union does not include Nulls.


24. Does Null = Null work

  • No, "Null IS Null" but since Null is undefined it cannot equal Null.

25. Does a Cluster need to be Unique?

  • No SQL Server has a Uniquifier. When you create a Cluster without specifying Unique SQL Server  adds a hidden column to make it Unique.


I will add and update. If you have a comment or correction or if you want to prove you are smarter than I am just drop me a line at Barry.OConnell@Yahoo.com

Wednesday, July 12, 2017

Implicit Conversions as a Performance Problem

Implicit Conversions as a Performance Problem

In SSMS in a query window put a query you wish to analyse. You can either choose to display an estimated execution plan or the actual execution plan.  You can highlight the query and right click for the option or use the menu.

Execution Plan:
Look for a Yellow Triangle on the first Icon. It looks like a Yield Sign with an Exclamation point (!). this means that the query engine is doing an implicit Conversion. This is a problem since it often means that it will ignore a useful Index. This is an easy fix it that you can make the Conversion Explicit and it will run faster and use the Index. But you need to figure out what collum is being converted.






Graphical Execution Plan Icons 

(SQL Server Management Studio)
https://technet.microsoft.com/en-us/library/ms175913(v=sql.105).aspx

Monday, July 03, 2017

WAIT STATs cheat sheet for SQL Server Performance

WAIT STATs cheat sheet for SQL Server Performance

When you have Performance issues you can tell a lot from the Wait Stats. But there are so many that I created a list of the important ones.

Run this to get the Wait Stats

SELECT *
FROM sys.dm_os_wait_stats; -- Local Servers

--To query a dynamic management view or function requires SELECT permission on object
--and VIEW SERVER STATE or VIEW DATABASE STATE permission.

SELECT *
FROM sys.dm_pdw_nodes_os_wait_stats; --This is for Azure/Cloud.

Most Wait Stats don't have major impact on Performance. But here are the ones that are most important:

The Performance killers:

ASYNC_NETWORK_IO - When this is high it is the App lagging and throttleing performance. It means SQLis waiting on App to take the data. So when they are saying the Database is slow this lets you blame the APP ;-)

BROKER_RECEIVE_WAITFOR        Receiving mail issue but is very rare.

CXPACKET Check the Cost Threshold for Parallelism and adjust than or = to one less than   number of cores.

MAXDOP.. Check the predicates, and tune the indexes to use the predicates. Try setting MAXDOP to one less

IO_COMPLETION  It is waiting for thread synchronization. Check for incompleate where clause. If you see this with PAGEIOLATCH_* check for table scans and bad query plan.

                                         LATCH_DT Exclusive latch, blocks other threads from writing to or reading from the referenced structure.

LATCH_EX Exclusive latch, blocks other threads from writing to or reading from the referenced structure.

LATCH_KP Lightweight works with others except DT

LATCH_NL Null Latch no longer used But I found it in a 2014 result =0

LATCH_SH Shared latch, required to read a page structure.

LATCH_UP Update latch, is compatible with SH (Shared latch) and KP, but no others and therefore will not allow an EX latch to write to the referenced structure.

All LCKs look to Indexes too few, Missing or unused.

LCK_M_BU "
LCK_M_BU_ABORT_BLOCKERS
LCK_M_BU_LOW_PRIORITY
LCK_M_IS "
LCK_M_IS_ABORT_BLOCKERS
LCK_M_IS_LOW_PRIORITY
LCK_M_IU "
LCK_M_IU_ABORT_BLOCKERS
LCK_M_IU_LOW_PRIORITY
LCK_M_IX "
LCK_M_IX_ABORT_BLOCKERS
LCK_M_IX_LOW_PRIORITY
LCK_M_RIn_NL "
LCK_M_RIn_NL_ABORT_BLOCKERS
LCK_M_RIn_NL_LOW_PRIORITY
LCK_M_RIn_S "
LCK_M_RIn_S_ABORT_BLOCKERS
LCK_M_RIn_S_LOW_PRIORITY
LCK_M_RIn_U "
LCK_M_RIn_U_ABORT_BLOCKERS
LCK_M_RIn_U_LOW_PRIORITY
LCK_M_RIn_X "
LCK_M_RIn_X_ABORT_BLOCKERS
LCK_M_RIn_X_LOW_PRIORITY
LCK_M_RS_S "
LCK_M_RS_S_ABORT_BLOCKERS
LCK_M_RS_S_LOW_PRIORITY
LCK_M_RS_U "
LCK_M_RS_U_ABORT_BLOCKERS
LCK_M_RS_U_LOW_PRIORITY
LCK_M_RX_S "
LCK_M_RX_S_ABORT_BLOCKERS
LCK_M_RX_S_LOW_PRIORITY
LCK_M_RX_U "
LCK_M_RX_U_ABORT_BLOCKERS
LCK_M_RX_U_LOW_PRIORITY
LCK_M_RX_X "
LCK_M_RX_X_ABORT_BLOCKERS
LCK_M_RX_X_LOW_PRIORITY
LCK_M_S "
LCK_M_S_ABORT_BLOCKERS
LCK_M_S_LOW_PRIORITY
LCK_M_SCH_M "
LCK_M_SCH_M_ABORT_BLOCKERS
LCK_M_SCH_M_LOW_PRIORITY
LCK_M_SCH_S
LCK_M_SCH_S_ABORT_BLOCKERS
LCK_M_SCH_S_LOW_PRIORITY
LCK_M_SIU "
LCK_M_SIU_ABORT_BLOCKERS
LCK_M_SIU_LOW_PRIORITY
LCK_M_SIX "
LCK_M_SIX_ABORT_BLOCKERS
LCK_M_SIX_LOW_PRIORITY
LCK_M_U "
LCK_M_U_ABORT_BLOCKERS
LCK_M_U_LOW_PRIORITY
LCK_M_UIX "
LCK_M_UIX_ABORT_BLOCKERS
LCK_M_UIX_LOW_PRIORITY
LCK_M_X "
LCK_M_X_ABORT_BLOCKERS
LCK_M_X_LOW_PRIORITY


OLEDB       Can indicate that the SPID is waiting for remote procedure calls, linked server queries, BULK INSERT commands or full-search queries. Look to see if systems you are linked to are up and responding normally.

PAGEIOLATCH_NL PAGEIOLATCH_* is IO related contention

PAELATCH_NL PAGELATCH_* SQL Server is waiting to read data pages from storage. Memory access contention. This used t be common but rarely if ever seen with a modern SAN.

RESOURCE_SEMAPHORE      Waiting for query execution memory. In other words you are out of Memory. I don't see this as much as I used to with cheap RAM.

SOS_SCHEDULER_YIELD    This means that the Query needs more CPU Cores. Look for parallelism inhibitors. Check what Maxdop is set to. If it is set to 1 or two you are likely limiting parallelism too much. You can see this in PerfMon if you look at all the Cores you might see one running at 100% and the others doing almost nothing. So spread the load through increasing Parallelism.

UDF - Take them out and rewrite code. UDFs inhibit Parallelism

TRAN_MARKLATCH_NL Tran_Mark_Latch_* are used for synchronization of commits.

WAIT_FOR_RESULTS    Waiting for a query notification to be triggered.





Various types in the order I found them on my LapTop:
MISCELLANEOUS
ABR
AM_INDBUILD_ALLOCATION
AM_SCHEMAMGR_UNSHARED_CACHE
ASSEMBLY_LOAD
ASYNC_DISKPOOL_LOCK
ASYNC_IO_COMPLETION
ASYNC_NETWORK_IO   The App cannot take the result set fast enough
ASYNC_OP_COMPLETION
ASYNC_OP_CONTEXT_READ
ASYNC_OP_CONTEXT_WRITE
AUDIT_GROUPCACHE_LOCK
AUDIT_LOGINCACHE_LOCK
AUDIT_ON_DEMAND_TARGET_LOCK
AUDIT_XE_SESSION_MGR
BACKUP Slow backup device
BACKUP_OPERATOR
BACKUPBUFFER
BACKUPIO
BACKUPTHREAD
BAD_PAGE_PROCESS
BMPALLOCATION
BMPBUILD
BMPREPARTITION
BMPREPLICATION
BROKER_CONNECTION_RECEIVE_TASK
BROKER_DISPATCHER
BROKER_ENDPOINT_STATE_MUTEX
BROKER_EVENTHANDLER
BROKER_FORWARDER
BROKER_INIT
BROKER_MASTERSTART
BROKER_RECEIVE_WAITFOR        Receiving mail very rare
BROKER_REGISTERALLENDPOINTS
BROKER_SERVICE
BROKER_SHUTDOWN
BROKER_TASK_SHUTDOWN
BROKER_TASK_STOP
BROKER_TASK_SUBMIT
BROKER_TO_FLUSH
BROKER_TRANSMISSION_OBJECT
BROKER_TRANSMISSION_TABLE
BROKER_TRANSMISSION_WORK
BROKER_TRANSMITTER
BUILTIN_HASHKEY_MUTEX
CHANGE_TRACKING_WAITFORCHANGES
CHECK_PRINT_RECORD
CHECKPOINT_QUEUE
CHKPT
CLEAR_DB
CLR_AUTO_EVENT
CLR_CRST
CLR_JOIN
CLR_MANUAL_EVENT
CLR_MEMORY_SPY
CLR_MONITOR
CLR_RWLOCK_READER
CLR_RWLOCK_WRITER
CLR_SEMAPHORE
CLR_TASK_START
CLRHOST_STATE_ACCESS
CMEMTHREAD
COLUMNSTORE_BUILD_THROTTLE
COMMIT_TABLE
COUNTRECOVERYMGR
CREATE_DATINISERVICE
CXPACKET Check the Cost Threshold for Parallelism and adjust MAXDOP.. Check the predicates, and tune the indexes to use the predicates. Try setting MAXDOP to one less than or = to one less than number of cores.
CXROWSET_SYNC
DAC_INIT
DBCC_SCALE_OUT_EXPR_CACHE
DBMIRROR_DBM_EVENT
DBMIRROR_DBM_MUTEX
DBMIRROR_EVENTS_QUEUE
DBMIRROR_SEND
DBMIRROR_WORKER_QUEUE
DBMIRRORING_CMD
DBSEEDING_FLOWCONTROL
DBSEEDING_OPERATION
DBSTATE
DEADLOCK_ENUM_MUTEX
DEADLOCK_TASK_SEARCH
DEBUG
DIRTY_PAGE_POLL
DIRTY_PAGE_SYNC
DISABLE_VERSIONING
DISKIO_SUSPEND
DISPATCHER_PRIORITY_QUEUE_SEMAPHORE
DISPATCHER_QUEUE_SEMAPHORE
DLL_LOADING_MUTEX
DROP_DATABASE_TIMER_TASK
DROPTEMP
DTC             Not local
DTC_ABORT_REQUEST
DTC_RESOLVE
DTC_STATE          Not Local
DTC_TMDOWN_REQUEST
DTC_WAITFOR_OUTCOME
DTCPNTSYNC
DUMP_LOG_COORDINATOR
DUMP_LOG_COORDINATOR_QUEUE
DUMPTRIGGER
EC
EE_PMOLOCK
EE_SPECPROC_MAP_INIT
ENABLE_EMPTY_VERSIONING
ENABLE_VERSIONING
ERROR_REPORTING_MANAGER
EXCHANGE
EXECSYNC
EXECUTION_PIPE_EVENT_INTERNAL
FABRIC_HADR_TRANSPORT_CONNECTION
FABRIC_REPLICA_CONTROLLER_LIST
FABRIC_REPLICA_CONTROLLER_STATE_AND_CONFIG
FABRIC_REPLICA_PUBLISHER_EVENT_PUBLISH
FABRIC_REPLICA_PUBLISHER_SUBSCRIBER_LIST
FABRIC_WAIT_FOR_BUILD_REPLICA_EVENT_PROCESSING
FAILPOINT
FCB_REPLICA_READ
FCB_REPLICA_WRITE
FEATURE_SWITCHES_UPDATE
FFT_NSO_DB_KILL_FLAG
FFT_NSO_DB_LIST
FFT_NSO_FCB
FFT_NSO_FCB_FIND
FFT_NSO_FCB_PARENT
FFT_NSO_FCB_RELEASE_CACHED_ENTRIES
FFT_NSO_FILEOBJECT
FFT_NSO_TABLE_LIST
FFT_NTFS_STORE
FFT_RECOVERY
FFT_RSFX_COMM
FFT_RSFX_WAIT_FOR_MEMORY
FFT_STARTUP_SHUTDOWN
FFT_STORE_DB
FFT_STORE_ROWSET_LIST
FFT_STORE_TABLE
FILESTREAM_CACHE
FILESTREAM_CHUNKER
FILESTREAM_CHUNKER_INIT
FILESTREAM_FCB
FILESTREAM_FILE_OBJECT
FILESTREAM_WORKITEM_QUEUE
FILETABLE_SHUTDOWN
FS_FC_RWLOCK
FS_GARBAGE_COLLECTOR_SHUTDOWN
FS_HEADER_RWLOCK
FS_LOGTRUNC_RWLOCK
FSA_FORCE_OWN_XACT
FSAGENT
FSTR_CONFIG_MUTEX
FSTR_CONFIG_RWLOCK
FT_COMPROWSET_RWLOCK
FT_IFTS_RWLOCK
FT_IFTS_SCHEDULER_IDLE_WAIT
FT_IFTSHC_MUTEX
FT_IFTSISM_MUTEX
FT_MASTER_MERGE
FT_MASTER_MERGE_COORDINATOR
FT_METADATA_MUTEX
FT_PROPERTYLIST_CACHE
FT_RESTART_CRAWL
FULLTEXT GATHERER
GDMA_GET_RESOURCE_OWNER
GHOSTCLEANUPSYNCMGR
GUARDIAN
HADR_AG_MUTEX
HADR_AR_CRITICAL_SECTION_ENTRY
HADR_AR_MANAGER_MUTEX
HADR_AR_UNLOAD_COMPLETED
HADR_ARCONTROLLER_NOTIFICATIONS_SUBSCRIBER_LIST
HADR_BACKUP_BULK_LOCK
HADR_BACKUP_QUEUE
HADR_CLUSAPI_CALL
HADR_COMPRESSED_CACHE_SYNC
HADR_CONNECTIVITY_INFO
HADR_DATABASE_FLOW_CONTROL
HADR_DATABASE_VERSIONING_STATE
HADR_DATABASE_WAIT_FOR_RESTART
HADR_DATABASE_WAIT_FOR_TRANSITION_TO_VERSIONING
HADR_DB_COMMAND
HADR_DB_OP_COMPLETION_SYNC
HADR_DB_OP_START_SYNC
HADR_DBR_SUBSCRIBER
HADR_DBR_SUBSCRIBER_FILTER_LIST
HADR_DBSEEDING
HADR_DBSEEDING_LIST
HADR_DBSTATECHANGE_SYNC
HADR_FABRIC_CALLBACK
HADR_FILESTREAM_BLOCK_FLUSH
HADR_FILESTREAM_FILE_CLOSE
HADR_FILESTREAM_FILE_REQUEST
HADR_FILESTREAM_IOMGR
HADR_FILESTREAM_IOMGR_IOCOMPLETION
HADR_FILESTREAM_MANAGER
HADR_GROUP_COMMIT
HADR_LOGCAPTURE_SYNC
HADR_LOGCAPTURE_WAIT
HADR_LOGPROGRESS_SYNC
HADR_NOTIFICATION_DEQUEUE
HADR_NOTIFICATION_WORKER_EXCLUSIVE_ACCESS
HADR_NOTIFICATION_WORKER_STARTUP_SYNC
HADR_NOTIFICATION_WORKER_TERMINATION_SYNC
HADR_PARTNER_SYNC
HADR_READ_ALL_NETWORKS
HADR_RECOVERY_WAIT_FOR_CONNECTION
HADR_RECOVERY_WAIT_FOR_UNDO
HADR_REPLICAINFO_SYNC
HADR_SYNC_COMMIT
HADR_SYNCHRONIZING_THROTTLE
HADR_TDS_LISTENER_SYNC
HADR_TDS_LISTENER_SYNC_PROCESSING
HADR_TIMER_TASK
HADR_TRANSPORT_DBRLIST
HADR_TRANSPORT_FLOW_CONTROL
HADR_TRANSPORT_SESSION
HADR_WORK_POOL
HADR_WORK_QUEUE
HADR_XRF_STACK_ACCESS
HTBUILD
HTDELETE
HTMEMO
HTREINIT
HTREPARTITION
HTTP_ENUMERATION
HTTP_START
HTTP_STORAGE_CONNECTION
IMPPROV_IOWAIT
INTERNAL_TESTING
IO_AUDIT_MUTEX
IO_COMPLETION
IO_RETRY
IOAFF_RANGE_QUEUE
It is waiting for thread synchronization. Check for incompleate where clause. If you see this with PAGEIOLATCH_* check for table scans and bad query plan. 
KSOURCE_WAKEUP
KTM_ENLISTMENT
KTM_RECOVERY_MANAGER
KTM_RECOVERY_RESOLUTION
LATCH_DT Exclusive latch, blocks other threads from writing to or reading from the referenced structure.
LATCH_EX Exclusive latch, blocks other threads from writing to or reading from the referenced structure.
LATCH_KP Lightweight works with others except DT
LATCH_NL Null Latch no longer used But I found it in a 2014 result =0
LATCH_SH Shared latch, required to read a page structure.
LATCH_UP Update latch, is compatible with SH (Shared latch) and KP, but no others and therefore will not allow an EX latch to write to the referenced structure.
LAZYWRITER_SLEEP
LCK_M_BU "
LCK_M_BU_ABORT_BLOCKERS
LCK_M_BU_LOW_PRIORITY
LCK_M_IS "
LCK_M_IS_ABORT_BLOCKERS
LCK_M_IS_LOW_PRIORITY
LCK_M_IU "
LCK_M_IU_ABORT_BLOCKERS
LCK_M_IU_LOW_PRIORITY
LCK_M_IX "
LCK_M_IX_ABORT_BLOCKERS
LCK_M_IX_LOW_PRIORITY
LCK_M_RIn_NL "
LCK_M_RIn_NL_ABORT_BLOCKERS
LCK_M_RIn_NL_LOW_PRIORITY
LCK_M_RIn_S "
LCK_M_RIn_S_ABORT_BLOCKERS
LCK_M_RIn_S_LOW_PRIORITY
LCK_M_RIn_U "
LCK_M_RIn_U_ABORT_BLOCKERS
LCK_M_RIn_U_LOW_PRIORITY
LCK_M_RIn_X "
LCK_M_RIn_X_ABORT_BLOCKERS
LCK_M_RIn_X_LOW_PRIORITY
LCK_M_RS_S "
LCK_M_RS_S_ABORT_BLOCKERS
LCK_M_RS_S_LOW_PRIORITY
LCK_M_RS_U "
LCK_M_RS_U_ABORT_BLOCKERS
LCK_M_RS_U_LOW_PRIORITY
LCK_M_RX_S "
LCK_M_RX_S_ABORT_BLOCKERS
LCK_M_RX_S_LOW_PRIORITY
LCK_M_RX_U "
LCK_M_RX_U_ABORT_BLOCKERS
LCK_M_RX_U_LOW_PRIORITY
LCK_M_RX_X " 
LCK_M_RX_X_ABORT_BLOCKERS
LCK_M_RX_X_LOW_PRIORITY
LCK_M_S "
LCK_M_S_ABORT_BLOCKERS
LCK_M_S_LOW_PRIORITY
LCK_M_SCH_M "
LCK_M_SCH_M_ABORT_BLOCKERS
LCK_M_SCH_M_LOW_PRIORITY
LCK_M_SCH_S All LCKs look to Indexes to few or unused
LCK_M_SCH_S_ABORT_BLOCKERS
LCK_M_SCH_S_LOW_PRIORITY
LCK_M_SIU "
LCK_M_SIU_ABORT_BLOCKERS
LCK_M_SIU_LOW_PRIORITY
LCK_M_SIX "
LCK_M_SIX_ABORT_BLOCKERS
LCK_M_SIX_LOW_PRIORITY
LCK_M_U "
LCK_M_U_ABORT_BLOCKERS
LCK_M_U_LOW_PRIORITY
LCK_M_UIX "
LCK_M_UIX_ABORT_BLOCKERS
LCK_M_UIX_LOW_PRIORITY
LCK_M_X "
LCK_M_X_ABORT_BLOCKERS
LCK_M_X_LOW_PRIORITY
LOGBUFFER
LOGCAPTURE_LOGPOOLTRUNCPOINT
LOGGENERATION
LOGMGR
LOGMGR_FLUSH
LOGMGR_QUEUE
LOGMGR_RESERVE_APPEND
LOGPOOL_CACHESIZE
LOGPOOL_CONSUMER
LOGPOOL_CONSUMERSET
LOGPOOL_FREEPOOLS
LOGPOOL_MGRSET
LOGPOOL_REPLACEMENTSET
LOGPOOLREFCOUNTEDOBJECT_REFDONE
LOWFAIL_MEMMGR_QUEUE
MD_AGENT_YIELD
MD_LAZYCACHE_RWLOCK
MSQL_DQ
MSQL_XACT_MGR_MUTEX
MSQL_XACT_MUTEX
MSQL_XP
MSSEARCH
NET_WAITFOR_PACKET
NODE_CACHE_MUTEX
OLEDB       Can indicate that the SPID is waiting for remote procedure calls, linked server queries, BULK INSERT commands or full-search queries.
ONDEMAND_TASK_QUEUE
PAGEIOLATCH_DT "
PAGEIOLATCH_EX 
PAGEIOLATCH_KP "
PAGEIOLATCH_NL PAGEIOLATCH_* is IO related contention
PAGEIOLATCH_SH 
PAGEIOLATCH_UP 
PAGELATCH_DT 
PAGELATCH_EX 
PAGELATCH_KP 
PAGELATCH_NL PAGELATCH_* waiting to read data pages from storage. Memory access contention.
PAGELATCH_SH 
PAGELATCH_UP 
PARALLEL_BACKUP_QUEUE
PERFORMANCE_COUNTERS_RWLOCK
PHYSICAL_SEEDING_DMV
PREEMPTIVE_ABR
PREEMPTIVE_CLOSEBACKUPMEDIA
PREEMPTIVE_CLOSEBACKUPTAPE
PREEMPTIVE_CLOSEBACKUPVDIDEVICE
PREEMPTIVE_CLUSAPI_CLUSTERRESOURCECONTROL
PREEMPTIVE_COM_COCREATEINSTANCE
PREEMPTIVE_COM_COGETCLASSOBJECT
PREEMPTIVE_COM_CREATEACCESSOR
PREEMPTIVE_COM_DELETEROWS
PREEMPTIVE_COM_GETCOMMANDTEXT
PREEMPTIVE_COM_GETDATA
PREEMPTIVE_COM_GETNEXTROWS
PREEMPTIVE_COM_GETRESULT
PREEMPTIVE_COM_GETROWSBYBOOKMARK
PREEMPTIVE_COM_LBFLUSH
PREEMPTIVE_COM_LBLOCKREGION
PREEMPTIVE_COM_LBREADAT
PREEMPTIVE_COM_LBSETSIZE
PREEMPTIVE_COM_LBSTAT
PREEMPTIVE_COM_LBUNLOCKREGION
PREEMPTIVE_COM_LBWRITEAT
PREEMPTIVE_COM_QUERYINTERFACE
PREEMPTIVE_COM_RELEASE
PREEMPTIVE_COM_RELEASEACCESSOR
PREEMPTIVE_COM_RELEASEROWS
PREEMPTIVE_COM_RELEASESESSION
PREEMPTIVE_COM_RESTARTPOSITION
PREEMPTIVE_COM_SEQSTRMREAD
PREEMPTIVE_COM_SEQSTRMREADANDWRITE
PREEMPTIVE_COM_SETDATAFAILURE
PREEMPTIVE_COM_SETPARAMETERINFO
PREEMPTIVE_COM_SETPARAMETERPROPERTIES
PREEMPTIVE_COM_STRMLOCKREGION
PREEMPTIVE_COM_STRMSEEKANDREAD
PREEMPTIVE_COM_STRMSEEKANDWRITE
PREEMPTIVE_COM_STRMSETSIZE
PREEMPTIVE_COM_STRMSTAT
PREEMPTIVE_COM_STRMUNLOCKREGION
PREEMPTIVE_CONSOLEWRITE
PREEMPTIVE_CREATEPARAM
PREEMPTIVE_DEBUG
PREEMPTIVE_DFSADDLINK
PREEMPTIVE_DFSLINKEXISTCHECK
PREEMPTIVE_DFSLINKHEALTHCHECK
PREEMPTIVE_DFSREMOVELINK
PREEMPTIVE_DFSREMOVEROOT
PREEMPTIVE_DFSROOTFOLDERCHECK
PREEMPTIVE_DFSROOTINIT
PREEMPTIVE_DFSROOTSHARECHECK
PREEMPTIVE_DTC_ABORT
PREEMPTIVE_DTC_ABORTREQUESTDONE
PREEMPTIVE_DTC_BEGINTRANSACTION
PREEMPTIVE_DTC_COMMITREQUESTDONE
PREEMPTIVE_DTC_ENLIST
PREEMPTIVE_DTC_PREPAREREQUESTDONE
PREEMPTIVE_FILESIZEGET
PREEMPTIVE_FSAOLEDB_ABORTTRANSACTION
PREEMPTIVE_FSAOLEDB_COMMITTRANSACTION
PREEMPTIVE_FSAOLEDB_STARTTRANSACTION
PREEMPTIVE_FSRECOVER_UNCONDITIONALUNDO
PREEMPTIVE_GETRMINFO
PREEMPTIVE_HADR_LEASE_MECHANISM
PREEMPTIVE_LOCKMONITOR
PREEMPTIVE_MSS_RELEASE
PREEMPTIVE_ODBCOPS
PREEMPTIVE_OLE_UNINIT
PREEMPTIVE_OLEDB_ABORTORCOMMITTRAN
PREEMPTIVE_OLEDB_ABORTTRAN
PREEMPTIVE_OLEDB_GETDATASOURCE
PREEMPTIVE_OLEDB_GETLITERALINFO
PREEMPTIVE_OLEDB_GETPROPERTIES
PREEMPTIVE_OLEDB_GETPROPERTYINFO
PREEMPTIVE_OLEDB_GETSCHEMALOCK
PREEMPTIVE_OLEDB_JOINTRANSACTION
PREEMPTIVE_OLEDB_RELEASE
PREEMPTIVE_OLEDB_SETPROPERTIES
PREEMPTIVE_OLEDBOPS
PREEMPTIVE_OS_ACCEPTSECURITYCONTEXT
PREEMPTIVE_OS_ACQUIRECREDENTIALSHANDLE
PREEMPTIVE_OS_AUTHENTICATIONOPS
PREEMPTIVE_OS_AUTHORIZATIONOPS
PREEMPTIVE_OS_AUTHZGETINFORMATIONFROMCONTEXT
PREEMPTIVE_OS_AUTHZINITIALIZECONTEXTFROMSID
PREEMPTIVE_OS_AUTHZINITIALIZERESOURCEMANAGER
PREEMPTIVE_OS_BACKUPREAD
PREEMPTIVE_OS_CLOSEHANDLE
PREEMPTIVE_OS_CLUSTEROPS
PREEMPTIVE_OS_COMOPS
PREEMPTIVE_OS_COMPLETEAUTHTOKEN
PREEMPTIVE_OS_COPYFILE
PREEMPTIVE_OS_CREATEDIRECTORY
PREEMPTIVE_OS_CREATEFILE
PREEMPTIVE_OS_CRYPTACQUIRECONTEXT
PREEMPTIVE_OS_CRYPTIMPORTKEY
PREEMPTIVE_OS_CRYPTOPS
PREEMPTIVE_OS_DECRYPTMESSAGE
PREEMPTIVE_OS_DELETEFILE
PREEMPTIVE_OS_DELETESECURITYCONTEXT
PREEMPTIVE_OS_DEVICEIOCONTROL
PREEMPTIVE_OS_DEVICEOPS
PREEMPTIVE_OS_DIRSVC_NETWORKOPS
PREEMPTIVE_OS_DISCONNECTNAMEDPIPE
PREEMPTIVE_OS_DOMAINSERVICESOPS
PREEMPTIVE_OS_DSGETDCNAME
PREEMPTIVE_OS_DTCOPS
PREEMPTIVE_OS_ENCRYPTMESSAGE
PREEMPTIVE_OS_FILEOPS
PREEMPTIVE_OS_FINDFILE
PREEMPTIVE_OS_FLUSHFILEBUFFERS
PREEMPTIVE_OS_FORMATMESSAGE
PREEMPTIVE_OS_FREECREDENTIALSHANDLE
PREEMPTIVE_OS_FREELIBRARY
PREEMPTIVE_OS_GENERICOPS
PREEMPTIVE_OS_GETADDRINFO
PREEMPTIVE_OS_GETCOMPRESSEDFILESIZE
PREEMPTIVE_OS_GETDISKFREESPACE
PREEMPTIVE_OS_GETFILEATTRIBUTES
PREEMPTIVE_OS_GETFILESIZE
PREEMPTIVE_OS_GETLONGPATHNAME
PREEMPTIVE_OS_GETPROCADDRESS
PREEMPTIVE_OS_GETVOLUMENAMEFORVOLUMEMOUNTPOINT
PREEMPTIVE_OS_GETVOLUMEPATHNAME
PREEMPTIVE_OS_INITIALIZESECURITYCONTEXT
PREEMPTIVE_OS_LIBRARYOPS
PREEMPTIVE_OS_LOADLIBRARY
PREEMPTIVE_OS_LOGONUSER
PREEMPTIVE_OS_LOOKUPACCOUNTSID
PREEMPTIVE_OS_MESSAGEQUEUEOPS
PREEMPTIVE_OS_MOVEFILE
PREEMPTIVE_OS_NETGROUPGETUSERS
PREEMPTIVE_OS_NETLOCALGROUPGETMEMBERS
PREEMPTIVE_OS_NETUSERGETGROUPS
PREEMPTIVE_OS_NETUSERGETLOCALGROUPS
PREEMPTIVE_OS_NETUSERMODALSGET
PREEMPTIVE_OS_NETVALIDATEPASSWORDPOLICY
PREEMPTIVE_OS_NETVALIDATEPASSWORDPOLICYFREE
PREEMPTIVE_OS_OPENDIRECTORY
PREEMPTIVE_OS_PDH_WMI_INIT
PREEMPTIVE_OS_PIPEOPS
PREEMPTIVE_OS_PROCESSOPS
PREEMPTIVE_OS_QUERYCONTEXTATTRIBUTES
PREEMPTIVE_OS_QUERYREGISTRY
PREEMPTIVE_OS_QUERYSECURITYCONTEXTTOKEN
PREEMPTIVE_OS_REMOVEDIRECTORY
PREEMPTIVE_OS_REPORTEVENT
PREEMPTIVE_OS_REVERTTOSELF
PREEMPTIVE_OS_RSFXDEVICEOPS
PREEMPTIVE_OS_SECURITYOPS
PREEMPTIVE_OS_SERVICEOPS
PREEMPTIVE_OS_SETENDOFFILE
PREEMPTIVE_OS_SETFILEPOINTER
PREEMPTIVE_OS_SETFILEVALIDDATA
PREEMPTIVE_OS_SETNAMEDSECURITYINFO
PREEMPTIVE_OS_SQLCLROPS
PREEMPTIVE_OS_SQMLAUNCH
PREEMPTIVE_OS_VERIFYSIGNATURE
PREEMPTIVE_OS_VSSOPS
PREEMPTIVE_OS_WAITFORSINGLEOBJECT
PREEMPTIVE_OS_WINSOCKOPS
PREEMPTIVE_OS_WRITEFILE
PREEMPTIVE_OS_WRITEFILEGATHER
PREEMPTIVE_OS_WSASETLASTERROR
PREEMPTIVE_REENLIST
PREEMPTIVE_RESIZELOG
PREEMPTIVE_ROLLFORWARDREDO
PREEMPTIVE_ROLLFORWARDUNDO
PREEMPTIVE_SB_STOPENDPOINT
PREEMPTIVE_SERVER_STARTUP
PREEMPTIVE_SETRMINFO
PREEMPTIVE_SHAREDMEM_GETDATA
PREEMPTIVE_SNIOPEN
PREEMPTIVE_SOSHOST
PREEMPTIVE_SOSTESTING
PREEMPTIVE_SP_SERVER_DIAGNOSTICS
PREEMPTIVE_STARTRM
PREEMPTIVE_STREAMFCB_CHECKPOINT
PREEMPTIVE_STREAMFCB_RECOVER
PREEMPTIVE_STRESSDRIVER
PREEMPTIVE_TESTING
PREEMPTIVE_TRANSIMPORT
PREEMPTIVE_UNMARSHALPROPAGATIONTOKEN
PREEMPTIVE_VSS_CREATESNAPSHOT
PREEMPTIVE_VSS_CREATEVOLUMESNAPSHOT
PREEMPTIVE_XE_CALLBACKEXECUTE
PREEMPTIVE_XE_CX_FILE_OPEN
PREEMPTIVE_XE_CX_HTTP_CALL
PREEMPTIVE_XE_DISPATCHER
PREEMPTIVE_XE_ENGINEINIT
PREEMPTIVE_XE_GETTARGETSTATE
PREEMPTIVE_XE_SESSIONCOMMIT
PREEMPTIVE_XE_TARGETFINALIZE
PREEMPTIVE_XE_TARGETINIT
PREEMPTIVE_XE_TIMERRUN
PREEMPTIVE_XETESTING
PRINT_ROLLBACK_PROGRESS
PRU_ROLLBACK_DEFERRED
PWAIT_ALL_COMPONENTS_INITIALIZED
PWAIT_COOP_SCAN
PWAIT_EVENT_SESSION_INIT_MUTEX
PWAIT_HADR_ACTION_COMPLETED
PWAIT_HADR_CHANGE_NOTIFIER_TERMINATION_SYNC
PWAIT_HADR_CLUSTER_INTEGRATION
PWAIT_HADR_FAILOVER_COMPLETED
PWAIT_HADR_JOIN
PWAIT_HADR_OFFLINE_COMPLETED
PWAIT_HADR_ONLINE_COMPLETED
PWAIT_HADR_POST_ONLINE_COMPLETED
PWAIT_HADR_SERVER_READY_CONNECTIONS
PWAIT_HADR_WORKITEM_COMPLETED
PWAIT_LOG_CONSOLIDATION_IO
PWAIT_LOG_CONSOLIDATION_POLL
PWAIT_MD_LOGIN_STATS
PWAIT_MD_RELATION_CACHE
PWAIT_MD_SERVER_CACHE
PWAIT_MD_UPGRADE_CONFIG
PWAIT_PREEMPTIVE_AUDIT_ACCESS_WINDOWSLOG
PWAIT_QRY_BPMEMORY
PWAIT_REPLICA_ONLINE_INIT_MUTEX
PWAIT_RESOURCE_SEMAPHORE_FT_PARALLEL_QUERY_SYNC
PWAIT_SECURITY_CACHE_INVALIDATION
PWAIT_XTP_FSSTORAGE_MAINTENANCE
PWAIT_XTP_HOST_STORAGE_WAIT
QDS_ASYNC_CHECK_CONSISTENCY_TASK
QDS_ASYNC_PERSIST_TASK
QDS_ASYNC_PERSIST_TASK_START
QDS_BCKG_TASK
QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP
QDS_CTXS
QDS_DB_DISK
QDS_DYN_VECTOR
QDS_LOADDB
QDS_PERSIST_TASK_MAIN_LOOP_SLEEP
QDS_SHUTDOWN_QUEUE
QDS_STMT
QDS_STMT_DISK
QDS_TASK_SHUTDOWN
QDS_TASK_START
QPJOB_KILL
QPJOB_WAITFOR_ABORT
QRY_MEM_GRANT_INFO_MUTEX
QRY_PARALLEL_THREAD_MUTEX
QUERY_EXECUTION_INDEX_SORT_EVENT_OPEN
QUERY_NOTIFICATION_MGR_MUTEX
QUERY_NOTIFICATION_SUBSCRIPTION_MUTEX
QUERY_NOTIFICATION_TABLE_MGR_MUTEX
QUERY_NOTIFICATION_UNITTEST_MUTEX
QUERY_OPTIMIZER_PRINT_MUTEX
QUERY_TASK_ENQUEUE_MUTEX
QUERY_TRACEOUT
RECOVER_CHANGEDB
REDO_THREAD_PENDING_WORK
REDO_THREAD_SYNC
REPL_CACHE_ACCESS
REPL_HISTORYCACHE_ACCESS
REPL_SCHEMA_ACCESS
REPL_TRANFSINFO_ACCESS
REPL_TRANHASHTABLE_ACCESS
REPL_TRANTEXTINFO_ACCESS
REPLICA_WRITES
REQUEST_DISPENSER_PAUSE
REQUEST_FOR_DEADLOCK_SEARCH
RESMGR_THROTTLED
RESOURCE_GOVERNOR_IDLE
RESOURCE_QUEUE
RESOURCE_SEMAPHORE      Waiting for a query execution memory grant. Check sorts and hatches.
RESOURCE_SEMAPHORE_MUTEX
RESOURCE_SEMAPHORE_QUERY_COMPILE
RG_RECONFIG
RTDATA_LIST
SCAN_CHAR_HASH_ARRAY_INITIALIZATION
SEC_DROP_TEMP_KEY
SECURITY_CRYPTO_CONTEXT_MUTEX
SECURITY_KEYRING_RWLOCK
SECURITY_MUTEX
SECURITY_RULETABLE_MUTEX
SEMPLAT_DSI_BUILD
SEQUENCE_GENERATION
SEQUENTIAL_GUID
SERVER_IDLE_CHECK
SERVER_RECONFIGURE
SHUTDOWN
SLEEP_BPOOL_FLUSH
SLEEP_DBSTARTUP
SLEEP_DCOMSTARTUP
SLEEP_MASTERDBREADY
SLEEP_MASTERMDREADY Super Rare
SLEEP_MASTERUPGRADED
SLEEP_MSDBSTARTUP
SLEEP_SYSTEMTASK
SLEEP_TASK
SLEEP_TEMPDBSTARTUP
SLO_UPDATE
SNI_CONN_DUP
SNI_CRITICAL_SECTION
SNI_HTTP_WAITFOR_0_DISCON
SNI_LISTENER_ACCESS
SNI_TASK_COMPLETION
SOAP_READ
SOAP_WRITE
SOS_CALLBACK_REMOVAL
SOS_DISPATCHER_MUTEX
SOS_MEMORY_TOPLEVELBLOCKALLOCATOR
SOS_MEMORY_USAGE_ADJUSTMENT
SOS_OBJECT_STORE_DESTROY_MUTEX
SOS_PHYS_PAGE_CACHE
SOS_PROCESS_AFFINITY_MUTEX
SOS_SCHEDULER_YIELD  look for parallelism inhibitors like a serial UDF Take them out and rewrite code.
SOS_SMALL_PAGE_ALLOC
SOS_STACKSTORE_INIT_MUTEX
SOS_SYNC_TASK_ENQUEUE_EVENT
SOS_VIRTUALMEMORY_LOW
SOSHOST_EVENT
SOSHOST_INTERNAL
SOSHOST_MUTEX
SOSHOST_RWLOCK
SOSHOST_SEMAPHORE
SOSHOST_SLEEP
SOSHOST_TRACELOCK
SOSHOST_WAITFORDONE
SP_PREEMPTIVE_SERVER_DIAGNOSTICS_SLEEP
SP_SERVER_DIAGNOSTICS_BUFFER_ACCESS
SP_SERVER_DIAGNOSTICS_INIT_MUTEX
SP_SERVER_DIAGNOSTICS_SLEEP
SQLCLR_APPDOMAIN
SQLCLR_ASSEMBLY
SQLCLR_DEADLOCK_DETECTION
SQLCLR_QUANTUM_PUNISHMENT
SQLSORT_NORMMUTEX
SQLSORT_SORTMUTEX
SQLTRACE_FILE_BUFFER
SQLTRACE_FILE_READ_IO_COMPLETION
SQLTRACE_FILE_WRITE_IO_COMPLETION
SQLTRACE_INCREMENTAL_FLUSH_SLEEP
SQLTRACE_PENDING_BUFFER_WRITERS
SQLTRACE_SHUTDOWN
SQLTRACE_WAIT_ENTRIES
SRVPROC_SHUTDOWN
STARTUP_DEPENDENCY_MANAGER
TEMPOBJ
TERMINATE_LISTENER
THREADPOOL
TIMEPRIV_TIMEPERIOD
TRACE_EVTNOTIF
TRACEWRITE
TRAN_MARKLATCH_DT
TRAN_MARKLATCH_EX
TRAN_MARKLATCH_KP
TRAN_MARKLATCH_NL  Tran_Mark_Latch_* are used for synchronization of commits
TRAN_MARKLATCH_SH
TRAN_MARKLATCH_UP
TRANSACTION_MUTEX
UCS_ENDPOINT_CHANGE
UCS_MANAGER
UCS_MEMORY_NOTIFICATION
UCS_SESSION_REGISTRATION
UCS_TRANSPORT
UCS_TRANSPORT_STREAM_CHANGE
UTIL_PAGE_ALLOC
VDI_CLIENT_COMPLETECOMMAND
VDI_CLIENT_GETCOMMAND
VDI_CLIENT_OPERATION
VDI_CLIENT_OTHER
VERSIONING_COMMITTING
VIA_ACCEPT
VIEW_DEFINITION_MUTEX
WAIT_FOR_RESULTS    waiting for a query notification to be triggered
WAIT_SCRIPTDEPLOYMENT_REQUEST
WAIT_SCRIPTDEPLOYMENT_WORKER
WAIT_XTP_ASYNC_TX_COMPLETION
WAIT_XTP_CKPT_AGENT_WAKEUP
WAIT_XTP_CKPT_CLOSE
WAIT_XTP_CKPT_ENABLED
WAIT_XTP_CKPT_STATE_LOCK
WAIT_XTP_GUEST
WAIT_XTP_HOST_WAIT
WAIT_XTP_OFFLINE_CKPT_BEFORE_REDO
WAIT_XTP_OFFLINE_CKPT_LOG_IO
WAIT_XTP_OFFLINE_CKPT_NEW_LOG
WAIT_XTP_PROCEDURE_ENTRY
WAIT_XTP_RECOVERY
WAIT_XTP_TASK_SHUTDOWN
WAIT_XTP_TRAN_DEPENDENCY
WAITFOR
WAITFOR_PER_QUEUE
WAITFOR_TASKSHUTDOWN
WAITSTAT_MUTEX
WCC
WINFAB_API_CALL
WINFAB_REPLICA_BUILD_OPERATION
WORKTBL_DROP
WRITE_COMPLETION
WRITELOG Logs too slow
XACT_OWN_TRANSACTION
XACT_RECLAIM_SESSION
XACTLOCKINFO
XACTWORKSPACE_MUTEX
XDES_HISTORY
XDES_OUT_OF_ORDER_LIST
XDES_SNAPSHOT
XDESTSVERMGR
XE_BUFFERMGR_ALLPROCESSED_EVENT
XE_BUFFERMGR_FREEBUF_EVENT
XE_CALLBACK_LIST
XE_CX_FILE_READ
XE_DISPATCHER_CONFIG_SESSION_LIST
XE_DISPATCHER_JOIN
XE_DISPATCHER_WAIT
XE_LIVE_TARGET_TVF
XE_MODULEMGR_SYNC
XE_OLS_LOCK
XE_SERVICES_EVENTMANUAL
XE_SERVICES_MUTEX
XE_SERVICES_RWLOCK
XE_SESSION_CREATE_SYNC
XE_SESSION_FLUSH
XE_SESSION_SYNC
XE_STM_CREATE
XE_TIMER_EVENT
XE_TIMER_MUTEX
XE_TIMER_TASK_DONE
XTP_HOST_DB_COLLECTION
XTP_HOST_LOG_ACTIVITY
XTPPROC_CACHE_ACCESS
XTPPROC_PARTITIONED_STACK_CREATE
b