Tuesday 21 October 2008

IO - Whats Pending Now

This script was developed as we were having IO issues on our Transactional Replication subscribers. This provides an easy snapshot into immediate IO requestsm just a little thing I'd keep hitting refresh on. Contains the SQL statement, so assists in tracking down problem queries.

select er.session_id,
object_name(s1.objectid) [Table],
s1.text,
er.logical_reads,
er.reads,
er.writes,
io_type,
er.wait_type,
w.pending_io_count,
oss.pending_disk_io_count,
w.pending_io_byte_count,
su.name
from sys.dm_io_pending_io_requests pir
join sys.dm_os_schedulers oss
on pir.scheduler_address = oss.scheduler_address
join sys.dm_os_workers w on w.worker_address = oss.active_worker_address
join sys.dm_os_tasks t on w.task_address = t.task_address
join sys.dm_exec_requests er on t.session_id = er.session_id
join sys.sysusers su on er.user_id = su.uid
cross apply sys.dm_exec_sql_text(sql_handle) as s1

No comments: