Home > Link, Microsoft SQL Server, MSBI, Optimization, Query, Script, SQL Mentalist, SQL PraRup, SQL Query, SQL Server, Technology,, TSQL, Vishal Pawar > BI SQL # 184 : SQL Server DBA Scripts : Pending IO Requests

BI SQL # 184 : SQL Server DBA Scripts : Pending IO Requests

Hi Folks,

In this article we are going to cover Pending IO Requests.

In this post we are going to discuss following points:

  • Problem Statement of SQL Script:
  • Description of SQL Script:
  • SQL Script Output Column
  • SQL Script Code
  • SQL Script Output Screenshot
  • User Level to execute

    Problem Statement of SQL Script:

    Find Pending IO Requests.

    Description of SQL Script:

    This Transact-SQL script lists all Pending IO Requests.

    SQL Script Output Column

    image

    SQL Script Code

    WITH pir
    AS (
        SELECT PIR.scheduler_address
            ,COUNT(*) AS PendIoRequests
            ,SUM(PIR.io_pending_ms_ticks) AS PendWaitTime
        FROM sys.dm_io_pending_io_requests AS PIR
        GROUP BY PIR.scheduler_address
        )
        ,req
    AS (
        SELECT ER.task_address
            ,COUNT(*) AS ReqCnt
            ,COUNT(DISTINCT ER.database_id) AS ReqDbCnt
            ,SUM(ER.wait_time) AS ReqWaitTime
        FROM sys.dm_exec_requests AS ER
        GROUP BY ER.task_address
        )
    SELECT OS.scheduler_id AS Scheduler
        ,OS.cpu_id AS CpuId
        ,CASE 
            WHEN OS.scheduler_id < 1048576
                THEN 'Query'
            ELSE 'Internal'
            END AS Scheduler
        ,OS.[status] AS OsStatus
        ,OS.current_workers_count AS CurrWrk
        ,OS.active_workers_count AS ActWrk
        ,OS.pending_disk_io_count AS pDiskIo
        ,OW.pending_io_count AS pIoCount
        ,OW.pending_io_byte_count AS pIoBytes
        ,OW.[state] AS WorkerState
        ,req.ReqDbCnt
        ,req.ReqCnt
        ,req.ReqWaitTime
        ,pir.PendIoRequests
        ,pir.PendWaitTime
    FROM sys.dm_os_schedulers AS OS
    INNER JOIN sys.dm_os_workers AS OW ON OS.active_worker_address = OW
        .worker_address
    -- Change it to INNER join to get only pending schedulers 
    LEFT JOIN pir ON pir.scheduler_address = OS.scheduler_address
    LEFT JOIN req ON req.task_address = OW.task_address
    ORDER BY OS.scheduler_id;

    SQL Script Output Screenshot

    image

    User Level to execute

    300

    Hope you will like to Pending IO Requests.

    If you really like reading my blog and understood at least few thing then please don’t forget to subscribe my blog.

If you want daily link and analysis or interesting link go to following website which will give @ your inbox please subscribe our following link resource blog :

Link Resource Website

For More information related to BI World visit my Mentalist Blog

SQL Server Mentalist >> SQL Learning Blog

Business Intelligence Mentalist >> BI World

Infographic Mentalist >> Image worth explaining thousand Words

Microsoft Mentalist >> MVC,ASP.NET, WCF & LinQ

DBA Mentalist >>Advance SQL Server Blog

Microsoft BI Mentalist >> MS BI Development Update

Connect With me on

| FaceBook |Twitter | linkedIn| Google+ | WordPress | RSS |

Advertisement
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: