INF: Recommended SQL Server for Windows NT Memory ConfigurationsID: Q110983
|
Microsoft SQL Server allows the use of up to 2,048 MB of virtual memory. This article discusses how much memory you should allocate to SQL Server versions 4.2x, 6.0, and 6.5 in various computer memory configurations. For information about memory configuration in SQL Server version 7.0, please refer to Microsoft Books Online, included with SQL Server version 7.0.
Windows NT provides each 32-bit Windows application a 4-gigabyte (GB)
virtual address space, the lower 2 GB of which is private per process and
available for application use. The upper 2 GB is reserved for system use.
The 4-GB address space is mapped to the available physical memory by the
Windows NT Virtual Memory Manager (VMM). The available physical memory can
be up to 4 GB, depending on hardware platform support.
A 32-bit Windows application such as SQL Server only perceives virtual or
logical addresses, not physical addresses. How much physical memory an
application uses at a given time (the working set) is determined by
available physical memory and the VMM. The application cannot directly
control memory residency.
Virtual address systems such as Windows NT allow the over-committing of
physical memory, such that the ratio of virtual to physical memory exceeds
1:1. As a result, larger programs can run on computers with a variety of
physical memory configurations. However, in most cases, using significantly
more virtual memory than the combined average working sets of all the
processes will result in poor performance.
Thus, configuring SQL Server for more virtual memory than the amount of
physical memory that exists can result in poor performance. Also, the
Windows NT operating system memory requirement must be considered -- about 12 MB, with some variation depending on application-induced overhead. Note that as SQL Server parameters are configured upward, this system overhead
requirement can grow as Windows NT needs more resident memory to support
additional threads, page tables, and so forth.
This results in a varying amount of memory that can be given to SQL Server
depending on the computer memory configuration. The table below presents
a rough estimate of memory configurations and assumes a dedicated database
server. If the computer is shared among multiple uses (such as a file server, database server, and/or a client workstation), less memory should be given to SQL Server and more left for the operating system and other uses.
Note that these values are only rough figures, and are presented to give an
approximate idea of SQL Server memory allocation over different memory
states. For more information, you can use the many monitoring features of
Windows NT Performance Monitor to determine your system memory
behavior. A good source of information is Volume 3 of the Windows NT
Resource Kit, "Optimizing Windows NT," by Russ Blake, [ISBN 1-55615-619-7],
which devotes nearly 600 pages to various aspects of monitoring and
optimizing Windows NT and 32-bit Windows applications.
Computer memory | Approx. memory to give SQL Server |
---|---|
16 MB | 4 MB |
24 MB | 8 MB |
32 MB | 16 MB |
48 MB | 28 MB |
64 MB | 40 MB |
128 MB | 100 MB |
256 MB | 216 MB |
512 MB | 464 MB |
1 GB | 950 MB |
1.5 GB | 1300 MB |
2 GB | 1500 MB |
Additional query words: 4.20 sql6 sqlfaqtop perfmon machine machines
Keywords : kbenv SSrvAdmin
Version : winnt:4.2x,6.0,6.5
Platform : winnt
Issue type : kbinfo
Last Reviewed: April 7, 1999