加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

怎样设置SQL Server行使Windows体系的Large-Page allocations

发布时间:2016-10-27 08:22:02 所属栏目:MsSql教程 来源:站长网
导读:副标题#e# 今天,一个可改变控制的实现激使我去写这篇文章,这个可改变的控制就是允许运行在Windows200864位服务器上的SQLSERVER2005企业版上 使用跟踪标志834,SQLSERVER会利用 Large-Page allocations去构建内存中的Buffer Pool。 下面是我对 Large-Page

页面分配和SQLSERVER

就像我早前提到过的跟踪标志834,834跟踪标志会强迫SQLSERVER进程虚拟地址空间使用大页面去构建Buffer Pool。这个跟踪标志

只能在64位SQLSERVER企业版,并且需要开启 Lock Pages in Memory功能才能使用。

当SQLSERVER使用大页面分配的时候,在SQL服务启动时入口信息会被记录在SQL ERRORLOG里

Large Page Extensions enabled. Large Page Granularity: 2097152 Large Page Allocated: 32MB Using large pages for buffer pool. 10208 MB of large page memory allocated.

如果SQLSERVER帐户没有Lock Pages in Memory的权限,就会在SQL ERRORLOG里记录下错误信息

Cannot use Large Page Extensions: lock memory privilege was not granted.

这篇文章非常友好地阐述了大页面分配和阐述了需要使用64位SQLSERVER企业版不会使用大页面分配,除非使用跟踪标志834

注意:(1)不能在SQLSERVER运行的过程当中指定跟踪标志834

DBCC TRACEON(834,-1)

查看本栏目更多精彩内容:http://www.bianceng.cn/database/SQLServer/

正在忽略跟踪标志 834。该跟踪标志无效,或者只能在服务器启动过程中指定。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

只能在SQLSERVER启动的时候加上启动参数:834

(2)如果SQLSERVER的《max server memory》选项被设置为0,那么SQLSERVER会占用整个服务器的所有物理内存当SQLSERVER启动的时候

(3)服务器需要有8GB或以上的物理内存和操作系统必须是企业版才能使用大页面分配

(4)可以使用下面SQL语句查看当前大页面分配的内存

SELECT  large_page_allocations_kb ,
        locked_page_allocations_kb
FROM    sys.dm_os_process_memory

怎样设置SQL Server行使Windows体系的Large-Page allocations

(5)如果系统符合大页面分配,并且开启了834跟踪标志,那么当SQLSERVER启动的时候会比较慢,可能需要几分钟时间

2009-06-04 14:20:31.14 Server      Large Page Allocated: 32MB 2009-06-04 14:20:40.03Server      Using large pages for buffer pool. 2009-06-04 14:27:56.98 Server      2048 MB of large page memory allocated.

上面的时间显示SQLSERVER用了7分钟时间来分配页面

总结:

为什麽SQLSERVER启动的时候就占用了服务器的所有内存,其中的一个原因有可能是你开启了跟踪标志834符合SQLSERVER使用大页面

分配虚拟地址空间的要求,并且设置《max server memory》选项为0

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读