Unexpected behavior occurs when you run many processes on a computer that is running SQL Server


When many processes run on your computer (for example, more than 50), behaviors that were not expected may occur. However, you may or may not receive an error message, and the error messages that are associated the problem may not be logged in the log files on your computer. The following symptoms are associated with this problem:
  • SQL Server Agent jobs that use CmdExec job steps fail for no reason. Sometimes, the status of the job is set to Success although the job did not actually run.
  • The xp_cmdshell statement returns a value of NULL, regardless of what command was issued.
  • CmdExec job steps in Data Transformation Services (DTS) may fail without any errors.
  • OLE Automation extended stored procedures, such as the sp_OACreate stored procedure, may fail with or without returning error codes.
  • Out-of-process replication agents may have problems.
  • The Start menu in the task bar may not open.
  • Out-of-process COM objects may not function correctly.
  • When you try to start Windows Task Manager by pressing CTRL+ALT+DEL, Windows Task Manager does not start, and the system event log may show an error message that is similar to the following:
  • any process that uses the CreateProcess Windows API may have problems.


To work around this problem, follow these steps.

Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows
  1. At a command prompt, type REGEDT32.EXE to start Registry Editor.
  2. In Registry Editor, locate the following registry key:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems
  3. In the right pane of Registry Editor, click
  4. On the Edit menu, click
  5. In the Edit String dialog box, locate the SharedSectionparameter string in the Value data box, and then specify a larger value for the
    SharedSection parameter.

    Note The SharedSection parameter specifies the system and desktop by using the following format, where <xxxx> defines the maximum size of the system-wide heap (in kilobytes), <yyyy> defines the size of the per desktop heap, and
    <zzzz> is the size of the desktop heap for each desktop that is associated with a non-interactive Windows station:
  6. Click OK.
If you increase the non-interactive desktop heap by 256 KB or by 512 KB, it typically provides sufficient memory to resolve the problem.

More Information

This problem is caused by a known problem in Microsoft Windows NT Server. SQL Server uses a non-interactive desktop heap. The non-interactive desktop heap may run out of memory if many processes are created. When there is not sufficient memory to satisfy an allocation request, an error is returned and the user is notified that the computer is low on memory. Some programs may not handle the failure, and sometimes there may not be sufficient memory to create the error message dialog box. When there is not sufficient memory to create the error message dialog box, the requested operation may fail without generating an error message.


For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

126962 "Out of memory" error message appears when you have a large number of programs running


文書番号:824422 - 最終更新日: 2008/09/12 - リビジョン: 1