Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 6413
  • Last Modified:

Suspended process with ASYNC_NETWORK_IO wait type

I am using and Access front end to connect to a SQL Serve 2005 database using linked odbc tables. This database was upscaled some months ago from a multi-user Access 2003 database. I have noticed many suspended processes with ASYNC_NETWORK_IO wait type in SQL activity monitor.

The SQL statement of one of these processes is:
SELECT "CustomerID" ,"CompanyName"  FROM "dbo"."Customers" ORDER BY "dbo"."Customers"."CustomerID"

The CustomerID column contains a numeric index, and CompanyName a text string, with about 12,000 records in the table. The server has a gigabit nic.

I was looking in the direction of a network bottleneck due to the wait type until I did observed the following: The process gets suspended almost immediately after opening the access front end on a single client machine; Executing the T-sql command locally on the server executes almost immediately.

Can someone confirm what causes result in suspended processes with this wait type? When does the decision get made to suspend the process? Where should I go from here?
0
m3tech
Asked:
m3tech
  • 2
1 Solution
 
imran_fastCommented:
ASYNC_NETWORK_IO means sql is waiting on a network.
The data must be loaded into memory on the client. This will definitely be a problem because most client desktops are not that powerful.

Consider updating your sqlserver indexes and make sure all statistics are up to date.
0
 
m3techAuthor Commented:
Could you forsee the client machines running low on memory and dropping the transaction and that manifesting as an ASYNC_NETWORK_IO wait?

Could you point me toward some documentation on updating sqlserver indexes and "all statistics"? I'll dig for the information myself, but would appreciate being pointed in the right direction. I am an experienced tech (general break-fix), but have just recently been asked to take over database development/maintenance and am quite new to troubleshooting a custom databse of this nature.
0
 
imran_fastCommented:
As you have numeric index on customer id table you need to do the following
With both SQL 2000 and SQL 2005 you can get the fragmentation information by using the DBCC SHOWCONTIG command.  In addition, you can use the dynamic management view sys.dm_db_index_physical_stats in SQL Server 2005.  These commands are great, but you really need to collect the information and then analyze the data to determine which indexes should be rebuilt versus which indexes should be defragmented.

To rebuild or defrag indexes you can use the DBCC DBEREINDEX or DBCC INDEXDEFRAG statements.  In addition, you can use the ALTER INDEX REBUILD/REORGANIZE statement for SQL 2005.


LOOK FOR sys.dm_db_index_physical_stats IN BOOKS ONLINE TO KNOW WHEN TO REORGANIZE OR REBUILD INDEX
0

Featured Post

Independent Software Vendors: 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!

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