--SELECT * FROM SYS.dm_os_schedulers --SQL SERVER的每个调度器 --select affinity from sys.dm_os_workers --SQL SERVER的每个工作任务 --select * from sys.dm_os_threads --在SQL SERVER进程中的所有SQLOS线程列表 --select * from sys.dm_os_tasks? --SQL SERVER实例上每一个活动的任务 --select * from sys.dm_os_waiting_task --正在等待资源的任务队列的信息
--SQL SERVER任务所在的调度器监视器 SELECT ?t1.session_id, ?CONVERT(varchar(10),t1.status) as status,t1.command) as command,t2.state) as work_state, ?t1.task_address FROM? ?SYS.dm_exec_requests t1 join sys.dm_os_workers t2 on ?t1.task_address=t2.task_address where ?t1.command='resource monitor' ?
--查询跨所有计划程序输出 SQL Server 中的工作线程和任务的状态? SELECT ??? scheduler_id, ??? cpu_id, ??? parent_node_id, ??? current_tasks_count, ??? runnable_tasks_count, ??? current_workers_count, ??? active_workers_count, ??? work_queue_count FROM sys.dm_os_schedulers
/*-------说明--------------- 计划程序的 ID 值 < 1048576。 ID >= 1048576 的计划程序称为隐藏计划程序。 计划程序 255 代表专用管理员连接 (DAC)。 每个实例都有一个 DAC 计划程序。 当 runnable_tasks_count 返回 0 时,表示没有正在运行的当前任务。但是,可能存在活动会话。 active_workers_count 代表具有关联任务并且正在非抢先模式下运行的所有工作线程。某些任务(例如,网络侦听器)在抢先计划下运行。 隐藏计划程序不会处理典型用户请求。DAC 计划程序例外。 */
--查找工作线程的状态 SELECT ??? scheduler_id, ??? work_queue_count FROM ?sys.dm_os_schedulers WHERE ??? scheduler_id < 255
?
--工作线程已在 SUSPENDED 或 RUNNABLE 状态下运行的时间 SELECT ??? t1.session_id, ??? CONVERT(varchar(10),t1.status) AS status, ??? CONVERT(varchar(15),t1.command) AS command,t2.state) AS worker_state, ??? w_suspended = ????? CASE t2.wait_started_ms_ticks ??????? WHEN 0 THEN 0 ??????? ELSE ????????? t3.ms_ticks - t2.wait_started_ms_ticks ????? END, ??? w_runnable = ????? CASE t2.wait_resumed_ms_ticks ??????? WHEN 0 THEN 0 ??????? ELSE ????????? t3.ms_ticks - t2.wait_resumed_ms_ticks ????? END ? FROM sys.dm_exec_requests AS t1 ? INNER JOIN sys.dm_os_workers AS t2 ??? ON t2.task_address = t1.task_address ? CROSS JOIN sys.dm_os_sys_info AS t3 ? WHERE t1.scheduler_id IS NOT NULL
--返回除正在睡眠的以外的会话的信息,这样可以通过WINDOWS性能监视器监视线程的性能 SELECT STasks.session_id,SThreads.os_thread_id ? FROM sys.dm_os_tasks AS STasks ? INNER JOIN sys.dm_os_threads AS SThreads ??? ON STasks.worker_address = SThreads.worker_address ? WHERE STasks.session_id IS NOT NULL ? ORDER BY STasks.session_id ? ? ? --查找正在运行非 SQL Server 启动的线程的工作以及执行的时间 SELECT * FROM sys.dm_os_threads WHERE started_by_sqlservr = 0
--查询是否存在活动的DAC连接,如果为空,则不存在SELECT ?t2.session_id FROM ?sys.tcp_endpoints? AS T1 JOIN SYS.dm_exec_sessions AS T2 ON ?T1.endpoint_id=T2.endpoint_id WHERE?T1.name='Dedicated Admin Connection'
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|