Solved

NETWORKIO slowing procedure?

Posted on 2003-12-09
4
1,653 Views
Last Modified: 2010-05-18
I have a procedure that queries data from a transaction table and updates a warehouse table. The select on the transaction table is "with (nolock)". As I am running it, I have had a NETWORKIO lock on this process the entire time, with wait time about 140 ms. Not a long time, but there seems to be no reason for the locking, and nothing is on the "network" - process is running as a job on the server itself.

The process started processing about 19 records per second and is now down to 14, so I believe the problem is causing the process to slow down. (I do my monitoring query with a nolock as well, so I am assuming this is not causing the problem).

Table being updated is brand new and clustered index that supports the update is there (update is on a 2-column concatenated key which is not being updated by the update statement in question). Stats seem to be there.  Plenty of LOG and TEMPDB space (GBs worth - table being updated is only 600,000 rows). 4CPU box.

This NETWORKIO lock problem has occurred regularly on this system but has usually gone away. This procedure seems to cause that lock to occur consistently. Stopping and starting the procedure did not help - it locks up after a few seconds, processing as few as 10 records per minute.

I have tried MAXDOP 1 to keep the process from locking itself up (old SQL bug, supposedly fixed).

Any suggestions?

Thanks,

Aaron
0
Comment
Question by:AaronAbend
  • 2
4 Comments
 
LVL 32

Expert Comment

by:bhess1
ID: 9906797
Generally, the wait type NETWORKIO occurs anytime SQL Server has to wait while sending results back to a client. However, this does not appear to be the problem, unless you are updating tables, or updating from tables, stored physically somewhere else on your network (Remote DB).

You should look at PERFMON's Network activity and similar things to see what sort of Network I/O is happening here...  any network access to a remote resource (not necessarily the transaction or warehouse tablee) should be looked at suspiciously...
0
 
LVL 10

Author Comment

by:AaronAbend
ID: 9906956
This is not easy since the server is located offsite and I cannot always get access via PCAnywhere, but I will try.  

0
 
LVL 34

Accepted Solution

by:
arbert earned 500 total points
ID: 9908500
"I have a procedure that queries data from a transaction table and updates a warehouse table"

What's the procedure?  DTS?  What runs this?  Like bhess1 stated above, it could be the client waiting on a response.  Just because all the process runs on the server, doesn't mean there isn't a client involved.  If you have stored procs, make sure you have the SET NOCOUNT on as the first line--this will also cause you to see networkio waits.
0
 
LVL 10

Author Comment

by:AaronAbend
ID: 9912029
For completeness -- The procedure is a TSQL procedure that is run as a job (which has one step - running this procedure with "exec myprocedure"). I start the job by accessing the server (located off site) via Enterprise Manager running on my machine.

I added NOCOUNT. I had wanted feedback during testing and had forgot to put it in. That changed the problem. Now I am seeing occasional PAGEIOLATCH_SH locks (which DOES make sense since there is another process accessing one of the tables).

I have been watching it for 10 minutes and have not seen the NETWORKIO error. Thanks, arbert.

0

Featured Post

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Nowadays, some of developer are too much worried about data. Who is using data, who is updating it etc. etc. Because, data is more costlier in term of money and information. So security of data is focusing concern in days. Lets' understand the Au…
Slowly Changing Dimension Transformation component in data task flow is very useful for us to manage and control how data changes in SSIS.
Using examples as well as descriptions, and references to Books Online, show the different Recovery Models available in SQL Server and explain, as well as show how full, differential and transaction log backups are performed
Via a live example, show how to set up a backup for SQL Server using a Maintenance Plan and how to schedule the job into SQL Server Agent.

947 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now