Note that in this particular message that the values for "OS Reserved", "OS Committed" and "OS In Use" are all greater than 30000. This value is specified in 8 KB blocks, so the numbers indicate that SQL Server has allocated almost 300 MB of memory in addition to what is allocated for the buffer pool (the memory sizevalue of the sp_configure stored procedure).
Service pack information
To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
290211 How to obtain the latest SQL Server 2000 service pack
The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
Note Because of file dependencies, the most recent hotfix or feature that contains the files may also contain additional files.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.This problem was first corrected in Microsoft SQL Server 2000 Service Pack 4.
SQL Server tries to use memory from the buffer pool for most internal allocations, but requests greater than 8 KB are routed to the normal operating system allocators. By default, SQL Server leaves a limited amount of address space for these types of allocations and also for things such as thread stack space, COM objects, extended stored procedures, and so on. You can modify the size of this region by using the -g command line parameter. For more information about the -g parameter, see SQL Server Books Online.
When SQL Server tries to allocate virtual memory for one of these large allocations, and that operation fails, it will try to remove cached query plans in hopes of freeing some of this memory. Before SQL Server 2000 Service Pack 3 (SP3), this operation would remove all query plans from cache, even if they were not using any of this memory. SQL Server 2000 SP3 introduced a change whereby only query plans that are known to be using this memory are removed from cache. This change introduced a problem where some query plans for cursors were not being removed.
Even with this fix, you might see the error message occasionally. Over time (minutes to hours) there may be additional cached plans that build up and the message occurs again. This can be normal and by itself should not be taken as a sign of a problem.