FIX: Error 701/Server Unresponsive on Cursor Queries w/UPDATE (158486)
The information in this article applies to:
- Microsoft SQL Server 6.0
- Microsoft SQL Server 6.5
This article was previously published under Q158486
BUG #: 15553 (Windows NT: 6.0)
15624 (6.5)
SYMPTOMS
When you run cursor queries that do an UPDATE using the WHERE CURRENT OF
<cursor> clause, the server runs out of memory, even though the cursors are
closed properly. This leads to the following error message (701):
There is insufficient system memory to run this query.
After that, the server becomes very slow for normal connections.
CAUSE
Cursor operations that do an UPDATE using the WHERE CURRENT OF <cursor>
cause a memory leak. One page of memory allocated on each call is not
reclaimed until the connection is dropped.
WORKAROUND
To work around this problem, do either of the following:
- Avoid using the UPDATE WHERE CURRENT OF <cursor> clause. Instead, you
can use "positioned" updates (calling sp_cursor or using SQLSetPos in
ODBC).
-or-
- Identify and close the connection that caused the error 701 message.
Normally, the client connection that caused this problem runs into the
error 701, and can be identified easily. When this connection is closed,
everything returns to normal.
STATUS
Microsoft has confirmed this to be a problem in Microsoft SQL Server
versions 6.0 and 6.5. This problem has been corrected in U.S. Service Pack
2 for Microsoft SQL Server version 6.5. For more information, contact your
primary support provider.
Modification Type: | Major | Last Reviewed: | 10/16/2003 |
---|
Keywords: | kbBug kbfix kbProgramming KB158486 |
---|
|