Error 8645: A time out occurred while waiting for memory resources to execute the query. Re-run the query.
The programmers are getting this error message when there is high workload on the server. And servers are experiencing high memory pressure.
In this error theire are some additional symptoms also.
1. When connecting to server will get the error message as "Login Failed".
2. Will get disconnected from server.
3. CPU usage will be very high.
4. if running "select * from sysprocesses" SPIDs will have a waittype of 0x40 or 0x0040 and a last_waittype of RESOURCE_SEMAPHORE.
5. The System Monitor object SQLServer:Memory Manager displays a non-zero
value for Memory Grants Pending.
6. SQL Profiler displays the event "Execution Warnings" that includes
the "Wait For Memory" or the "Wait For Memory Timeout" text.
Reasons for this error is memory intensive queries are getting qued and are not getting resources before timout period. And after timout period and getting timout. By default query wait period is -1 by setting non-negative number you can improve the query wait time.
Other reasons for this errors are not properly optimised queries, memory allocation for sql server is too small.
Solutions for this error include the following.
1. Optimise the performance of queries using sql profiler.
2. Distrybution statistics should be uptodate.
3. Watch the system monitor trace to see the memory usage of sql server.
4. If you are running SQL Server 7.0, test disabling parallelism for SQL Server 7.0 by turning the max degree of parallelism configuration option off.