以下是一些您应该熟悉的更有用的DMV:
- 1、sys.dm_exec_cached_plans - 可用于SQL Server的缓存查询计划
- 2、sys.dm_exec_sessions - SQL Server中的会话
- 3、sys.dm_exec_connections - 连接到SQL Server
- 4、sys.dm_db_index_usage_stats - 搜索,扫描,查找每个索引
- 5、sys.dm_io_virtual_file_stats - 数据库和日志文件的IO统计信息
- 6、sys.dm_tran_active_transactions - SQL Server实例的事务状态
- 7、sys.dm_exec_sql_text - 返回TSQL代码
- 8、sys.dm_exec_query_plan - 返回查询计划
- 9、sys.dm_os_wait_stats - 返回信息SQL正在等待的资源
- 10、sys.dm_os_performance_counters - 返回与SQL Server相关的性能监视器计数器
1.sys.dm_exec_cached_plans(缓存计划)
--缓存计划: select text,t1.* from sys.dm_exec_cached_plans t1 cross apply sys.dm_exec_sql_text(t1.plan_handle)
7、sys.dm_exec_text(获取运行文本)
系统进程: select * from sys.sysprocesses 用户进程:
dbcc inputBuffer(@@spid)--可以获得执行/调用语句
--下面可以获取当前执行语句 select start_time,command,percent_complete,text, session_id,blocking_session_id from sys.dm_exec_requests r cross apply sys.dm_exec_sql_text(r.sql_handle) s

9、sys.dm_os_waiting_tasks(返回信息SQL正在等待的实例资源)
拓展应用参考:
1:sys.dm_os_waiting_tasks 引发的疑问(上)
2:sys.dm_os_waiting_tasks 引发的疑问(中)
3:sys.dm_os_waiting_tasks 引发的疑问(下)
waiting_task_address |
varbinary(8) |
等待任务的地址。 |
session_id |
smallint |
与任务关联的会话的 ID。 |
exec_context_id |
int |
与任务关联的执行上下文的 ID。 |
wait_duration_ms |
int |
此等待类型的总等待时间(毫秒)。此时间包含 signal_wait_time。 |
wait_type |
nvarchar(60) |
等待类型的名称。 |
resource_address |
varbinary(8) |
任务等待的资源的地址。 |
blocking_task_address |
varbinary(8) |
当前持有此资源的任务。 |
blocking_session_id |
smallint |
正在阻塞请求的会话的 ID。如果此列为 NULL,则表示请求未被阻塞,或锁定会话的会话信息不可用(或无法进行标识)。 -2 = 阻塞资源由孤立的分布式事务拥有。 -3 = 阻塞资源由延迟的恢复事务拥有。 -4 = 由于内部闩锁状态转换而无法确定阻塞闩锁所有者的会话 ID。 |
blocking_exec_context_id |
int |
正在阻塞的任务的执行上下文 ID。 |