SQL Server 对象内存使用情况说明
下表列出 Microsoft® SQL Server™ 中不同对象的内存使用量。下表中的信息不适用于 Microsoft® SQL Server 2000™ Windows® CE 版。
下表列出 Microsoft® SQL Server™ 中不同对象的内存使用量。下表中的信息不适用于 Microsoft® SQL Server 2000™ Windows® CE 版。
|
对象大小 | |
对象 |
SQL Server 7.0 |
SQL Server 2000 |
锁 |
96 字节 |
每个所有者 64 字节外加 32 字节。 |
开放式数据库 |
2.880 字节 |
每个文件 3924 字节外加 1640 字节,每个文件组 336 字节。 |
开放式对象1 |
276 字节 |
每个对象上打开的索引 256 字节外加 1724 字节2。 |
用户联接 |
12 KB +(3 * 网络数据包大小)3。 |
12 KB +(3 * 网络数据包大小)3。 |
3 开放式对象包括所有的表、视图、存储过程、扩展存储过程、触发器、规则、默认值及约束。
2 在表或视图上可以打开索引。
3 网络数据包大小是表格格式数据方案 (TDS) 数据包的大小,该数据包用于应用程序和关系数据库引擎之间的通讯。默认的数据包大小为 4 KB,由 network packet size 配置选项控制。2 在表或视图上可以打开索引。
内存相关:
服务器虚拟内存的配置
页面文件和物理内存或RAM构成虚礼内存
虚拟内存设置方法:
启动"控制面板"的"系统"选项,然后选择"虚拟内存"按钮来创建一个附加的页面文件或增加当前页面文件的大小。
虚拟内存不足:
当服务器上运行的应用程序请求的内存超过服务器上可用的内存时,Microsoft® Windows® 打开"服务器进程 — 虚拟内存用完"对话框,其文本如下所示:
系统的虚拟内存已经不足。请关闭一些应用程序。可以启动"控制面板"的"系统"选项,然后选择"虚拟内存"按钮来创建一个附加的页面文件或增加当前页面文件的大小。
一般情况下,将虚拟内存大小设置为计算机中安装的物理内存的 1.5 倍
如果另外安装了全文检索功能,并打算运行 Microsoft 搜索服务以便执行全文索引和查询,可考虑:
将虚拟内存大小配置为至少是计算机中安装的物理内存的 3 倍。
● 将 SQL Server max server memory 服务器配置选项配置为物理内存的 1.5 倍(虚拟内存大小设置的一半)。
如考虑其它服务需要的虚拟内存,则配置 SQL Server max server memory 选项,使得留有足够的虚拟内存满足全文检索内存需求。全部虚拟内存 -(SQL Server 最大虚拟内存 + 其它服务需要的虚拟内存)>= 1.5 倍物理内存。
Sql server 使用的内存参数的配置:
手工配置给 SQL Server 多于物理内存数量的虚拟内存会导致性能较低。默认情况下,SQL Server 能够可用系统资源动态改变它的内存需求。min server memory 的默认设置为 0,max server memory 的默认设置为 2147483647。可以为 max server memory 指定的最小内存量为 4 MB。
作用:如果在运行 SQL Server 实例的计算机上频繁启动或停止其它应用程序,启动这些应用程序所需的时间可能会因 SQL Server 实例分配和释放内存而延长。另外,如果 SQL Server 是几个在一台计算机上运行的服务器应用程序中的一个,系统管理员可能需要控制分配给 SQL Server 的内存量。在这些情况下,可以使用 min server memory 和 max server memory 选项控制 SQL Server 可以使用的内存量。
对SQL Sserver 使用内存的配置主要是对以下三个参数进行配置:
min server memory 保证了 SQL Server 实例使用的最小内存量。
max server memory 则可防止 SQL Server 使用多于指定数量的内存,这样剩余的可用内存可以快速运行其它应用程序。
set working set size 为 SQL Server 保留等于服务器内存设置的物理内存空间。
手工设置 SQL Server 内存选项有两种主要方法:
第一种方法,设置 min server memory 和 max server memory 为同一数值。该数值与分配给 SQL Server 的固定内存量相对应。
第二种方法,把 min server memory 和 max server memory 数量设置到一个范围段内。这种方法在系统或数据库管理员希望配置 SQL Server 实例,使其适应在同一台计算机上运行的其它应用程序的内存需求时很有用。
如果只设置了min server memory 和 max server memory ,sql server 使用的内存值在最小和最大值之间变动(如果sql server 使用的值超过过最小值的话)
如果设置set working set size =1,必须先将min server memory 和 max server memory的值设成同一个值,这个值就是为sql server 保留的物理内存空间。即使当 SQL Server 空闲,另一个进程可以使用 SQL Server 页时,系统也不会将 SQL Server 页交换出去。