Solved

NETWORKIO slowing procedure?

Posted on 2003-12-09
4
1,652 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
Comment Utility
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
Comment Utility
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
Comment Utility
"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
Comment Utility
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

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Sharepoint 3.0 migration 4 37
SQL Backup skipping a few tables 7 24
Sql Stored Procedure 26 27
SQL Server RDS clr assembly 4 33
Performance is the key factor for any successful data integration project, knowing the type of transformation that you’re using is the first step on optimizing the SSIS flow performance, by utilizing the correct transformation or the design alternat…
Introduction SQL Server Integration Services can read XML files, that’s known by every BI developer.  (If you didn’t, don’t worry, I’m aiming this article at newcomers as well.) But how far can you go?  When does the XML Source component become …
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
Via a live example, show how to setup several different housekeeping processes for a SQL Server.

762 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

6 Experts available now in Live!

Get 1:1 Help Now