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
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment