• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 274
  • Last Modified:

High IO on SQL Server 2010

We find that the SQL server IO is  high in this afternoon. Using the query below, there is not too much task running on the server and some of the tasks are 'suspended'.  I just wonder whether the query has included all the running processes or job running on the SQL Server. Will there be a possiblity that the high IO task is coming from the suspended job as the query only show the CPU. It can't show IO at all.

SELECT sqltext.TEXT,
req.session_id,
req.status,
req.command,
req.cpu_time,
req.total_elapsed_time
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext
0
AXISHK
Asked:
AXISHK
  • 4
  • 3
1 Solution
 
plusone3055Commented:
Suspended jobs are not included


here is an excellent trouble shooting guide from Microsoft in regards to IO
http://blogs.msdn.com/b/sqljourney/archive/2013/06/04/how-to-troubleshooting-sql-server-i-o-bottlenecks.aspx

additionally ive used this guide from MSSQL tips as well when Dealing with IO Bottlenecks
http://www.mssqltips.com/sqlservertutorial/254/investigating-io-bottlenecks/
0
 
AXISHKAuthor Commented:
But for those the suspended jobs, will it wait for IO and that's why it is suspended ?

Tks
0
 
plusone3055Commented:
1. will it wiat for IO  = yes
2. is that why its suspended = no

3. queries are in suspended state when trying to get a resource that isn't available, the query will resume once said resource is accessisble
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
AXISHKAuthor Commented:
As the IO is high when users report performance issue, can I say the high IO "may be" caused by this suspended job , as the query seem to view the CPU and no IO column is reported.

Tks
0
 
plusone3055Commented:
yes
0
 
AXISHKAuthor Commented:
Is there any query that can see current jobs's accumulated IO on the SQL Server ?
0
 
plusone3055Commented:
Not for jobs

please refer to
http://www.mssqltips.com/sqlservertutorial/254/investigating-io-bottlenecks/

with the query  (from the above link)

SELECT
cast(DB_Name(a.database_id) as varchar) as Database_name,
b.physical_name, *
FROM  
sys.dm_io_virtual_file_stats(null, null) a
INNER JOIN sys.master_files b ON a.database_id = b.database_id and a.file_id = b.file_id
ORDER BY Database_Name

This DMV will give you cumulative file stats for each database and each database file including both the data and log files.  Based on this data you can determine which file is the busiest from a read and/or write perspective.  

The output also includes I/O stall information for reads, writes and total.  The I/O stall is the total time, in milliseconds, that users waited for I/O to be completed on the file.  By looking at the I/O stall information you can see how much time was waiting for I/O to complete and therefore the users were waiting.  

The data that is returned from this DMV is cumulative data, which means that each time you restart SQL Server the counters are reset.  Since the data is cumulative you can run this once and then run the query again in the future and compare the deltas for the two time periods. If the I/O stalls are high compared to the length of the that time period then you may have an I/O bottleneck.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now