400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Concepts:Request和Task-创新互联

当SQL Server 引擎接收到用户发出的查询请求时,SQL Server执行优化器将查询请求(Request)和Task绑定,并为Task分配一个Workder,SQL Server申请操作系统的进程(Thread)来执行Worker。如果以并行的方式执行Request,SQL Server根据Max DOP(Maximum Degree Of Parallelism) 配置选项创建新的Child Tasks,SQL Server将Request和多个Task绑定;例如,如果Max DOP=8,那么将会存在 1个Master Task和 8 个Child Tasks。每个Task绑定到一个Worker中,SQL Server引擎将分配相应数量的Worker来执行Tasks。

创新互联-专业网站定制、快速模板网站建设、高性价比海湖新网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式海湖新网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖海湖新地区。费用合理售后完善,十余年实体公司更值得信赖。

一,查看正在执行的Request

使用 sys.dm_exec_requests 返回正在执行的查询请求(Request)关联的查询脚本,阻塞和资源消耗。

1,查看SQL Server正在执行的查询语句

2,查看阻塞(Block)的语句

3,内存,IO,CPU消耗统计

二,查看SQL Server 当前正在执行的SQL查询语句

在进行故障排除时,使用DMV:sys.dm_exec_requests 查看SQL Server当前正在执行的查询语句:

select  r.session_id,
        r.blocking_session_id as blocking,
        r.wait_type as current_wait_type,
        r.wait_resource, 
        r.last_wait_type,
        r.wait_time/1000 as wait_s,
        r.status,
        r.command,
        r.cpu_time,r.reads,r.writes,r.logical_reads,
        r.total_elapsed_time,r.start_time,r.database_id,        substring(  st.text, 
                    r.statement_start_offset/2+1,
                    ( case when r.statement_end_offset = -1 
                                then len(convert(nvarchar(max), st.text))                           else (r.statement_end_offset - r.statement_start_offset)/2
                      end 
                    )
                ) as individual_query        --,db_name(r.database_id) as dbname,r.percent_complete,r.estimated_completion_time,r.granted_query_memoryfrom sys.dm_exec_requests router APPLY sys.dm_exec_sql_text(r.sql_handle) as stwhere ((r.wait_type<>'MISCELLANEOUS' and r.wait_type <> 'DISPATCHER_QUEUE_SEMAPHORE' ) or r.wait_type is null)    and r.session_id>50
    and r.session_id<>@@spidorder by r.session_id asc

1,在故障排除时,可以过滤掉一些无用的wait type 和当前Session:

2,查看request执行的SQL查询语句

sql_handle 字段表示当前查询语句的句柄(handle),将该字段传递给sys.dm_exec_sql_text函数,将获取Request执行的SQL语句,SQL Server对某些包含常量的查询语句自动参数化(“Auto-parameterized”),获取的SQL 查询语句格式如下,SQL Server在查询语句的开头增加参数声明:

(@P1 int,@P2 int,@P3 datetime2(7),@P4 datetime2(7))WITH CategoryIDs      AS (SELECT B.CategoryID,
  .....

两个字段:stmt_start和stmt_end,用于标识参数声明的开始和结尾的位置,使用这两个字段,将参数声明剥离,返回SQL Server执行的查询语句。

3,阻塞

字段 blocking_session_id :阻塞当前Request的Session,但排除0,-2,-3,-4 这四种ID值:

三,查看SQL Server实例中活动的Task

使用DMV:sys.dm_os_tasks 查看当前实例中活动的Task

1,字段 task_state,标识Task的状态

2,挂起的IO(Pending)

3,关联的Request和Worker(associated)

4, Task Hierarchy

5,监控并发Request(Monitoring parallel requests)

For requests that are executed in parallel, you will see multiple rows for the same combination of (<session_id>, <request_id>).

SELECT
    session_id,
    request_id,
    task_state,
    pending_io_count,
    pending_io_byte_count,
    pending_io_byte_average,
    scheduler_id,
    context_switches_count,
    task_address,
    worker_address,
    parent_task_addressFROM sys.dm_os_tasksORDER BY session_id, request_id;

或利用 Task Hierarchy来查询

select 
    tp.session_id, 
    tp.task_state as ParentTaskState,
    tc.task_state as ChildTaskStatefrom sys.dm_os_tasks tpinner join sys.dm_os_tasks tc    on tp.task_address=tc.parent_task_address

四,等待资源的Task(waiting)

使用DMV:sys.dm_os_waiting_tasks 查看系统中正在等待资源的Task

在对阻塞进行故障排除时,查看Block 和 争用的资源:

select wt.waiting_task_address,
    wt.session_id,    --Wait and Resource    wt.wait_duration_ms,
    wt.wait_type,
    wt.resource_address,
    wt.resource_description,
    wt.blocking_task_address,
    wt.blocking_session_idfrom sys.dm_os_waiting_tasks wt

五,使用dbcc inputbuffer(spid)获取spid最后一次执行的SQL语句

dbcc inputbuffer(spid)

Appendix:

引用《How to isolate the current running commands in SQL Server》,该文章描述了如何分离Request执行的查询语句:

Concepts:Request 和 Task View Code

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:Concepts:Request和Task-创新互联
当前地址:http://mzwzsj.com/article/cocidi.html

其他资讯

让你的专属顾问为你服务