SQL Server安装完成后3个需要立即修改的配置选项_MsSql

你用安装向导安装了全新的SQL Server,最后你点击了完成按钮。哇噢~~~现在我们可以把我们的服务器进入生产了!抱歉,那并不是真的,因为你的全新SQL Server默认配置是错误的。

是的,你没看错:SQL Server的默认安装在很多方面的配置是错误的。在今天的文章里,我想给你展示下,为了更快的性能,在SQL Server安装完成后3个你需要立即修改的配置选项。我们开始吧!

最大服务器内存(Max Server Memory)
免责声明:如果这些天你在32位系统上运行你的SQL Server,请扔掉你的硬件,买个64位的系统,安装64位的SQL Server,然后从这里继续读。

现在在你面前你应该i有个64位的SQL Server。64位意味着你可以理论上访问2^64的内存大小——那是16艾字节(10亿GB)!因为这些巨量的内存,计算机供应商当前限制64位系统的地址总线“只有”48位——完全64位没有真正意义。用48位的地址空间,你可以访问256TB的内存——那还是大量的空间。

你可以使用最大服务器内存配置选项来配置SQL Server可以消耗的内存大小。下图显示的是在64位系统上SQL Server默认安装后的配置选项。

从刚才的图片你可以看到,SQL Server默认配置是可以消耗上至2147483647MB的内存——那是2千兆!嗯,用48位的地址总线我们只能物理访问256TB的内存,现在SQL Server可以消耗上至2千兆的内存?这里有什么东西不对……最大服务器内存设置比32位最大整形值还大——2147483647。没别的。因此SQL Server可以消耗比物理地址更多的内存?这是一个很不好的默认配置。SQL Server默认可以吃光你整个物理内存!

你总应该改变这个配置选项,这样的话你可以给系统一些内存,让它可以活着喘气。一般来说(在服务器上没有其它程序/进程)你应该系统至少10%的物理内存。这就是说你需要调低最大服务器内存设置。有64GB的物理内存我会配置最大服务器内存为56GB,这样的话系统可以用剩下的8G来消耗和工作。

并行开销阀值(Cost Threshold for Parallelism)
下一个你需要修改的配置选项是SQL Server处理并行开销的阀值。并行意味着SQL Server能透过多个工作线程运行执行计划里的运算符。并行的目的是提高你查询的吞吐量。SQL Server里第1个影响并行的配置选项是所谓的并行开销阀值

这里你配置的数字定义查询成本,查询优化器用它来找更便宜的并行执行计划。如果找到的并行计划更便宜,这个计划会被执行,不然串行计划会被执行。从刚才的图你可以看到,SQL Server默认配置使用5的成本阀值。当你的串行计划查询成本大于5,然后查询优化器再次运行查询优化来找更便宜并行执行计划的可能。

遗憾的是,5的成本值当下来说是个很小的数字。因此SQL Server太快尝试并行你的执行计划。当你处理更大的查询并行才有意义——例如报表或数据仓库情形。在纯OLTP情形下,并行计划象征着糟糕的索引设计,因为当你有缺失索引时,SQL Server需要扫描你的整个聚集索引(在与过滤(Filter)和剩余谓语(residual predicate)组合里),因此你的查询成本越来越大,它们穿过成本阀值,最后查询优化器给你并行计划。当人们看到并行计划时,总会担心!但问题根源是缺失非聚集索引。

对于并行的成本阀值,我总推荐至少20,甚至50。那样的话,你确保SQL Server只为你对更大的查询进行并行。即使在你面前有个并行计划,你也应该考虑下可否通过增加一个支持的非聚集索引来是这个查询成本更低。另外,CXPACKET并不象征着在你的系统里你有并行问题!

最大并行度(Max Degree of Parallelism (MAXDOP))
当在SQL Server里一个执行计划进入并行,最大并行度定义了执行计划里每个并行运算符可用工作线程。下图显示了这个选项的默认配置。

如你所见,SQL Server使用默认值0。这个值意味着SQL Server尝试并行化你的执行计划穿过分配给SQL Server的所有CPU内核(默认情况所有内核都分配给SQL Server!)。你应该能看出这样的设置没有意义,尤其当你有大量CPU内核的系统。并行化本身带来负担,一旦你使用越多的工作线程,这个负担越大。

一个建议是设置最大并行度为在一个NUMA结点里拥有的内核数。因此在查询执行时,SQL Server会尝试在一个NUMA结点里保持并行计划,这也会提高性能。

有时你也会看到建议去设置最大并行度为1。这个是不好的建议,因为这个使你的“整个”SQL Server 单线程!即使维护操作(例如索引重建)已单线程执行,这会严重伤及性能!当然也有一些“获奖”产品指示你使用1的最大并行度(MAXOP)……

将承载 SharePoint 数据库的 SQL Server 实例的最大并行度 (MAXDOP) 设置为 1 以确保单个 SQL Server 过程能够为每个请求提供服务。

小结
在你安装完SQL Server后,DBA的真正工作才开始:你需要配置你的SQL Server安装到你的硬件配置。在这篇文章里你已看到,SQL Server的默认配置是明显错误的。因此在安装后立即修改一些配置选项非常重要。我已经见过生产环境里SQL Server使用我这里提到的默认选项,因为它们“稍后“会被配置,“稍后”就从未发生了……

因此今天请帮自己一个忙,为最大性能和吞吐量配置你的SQL Server!

精彩专题分享: SQL Server安装教程手册

读完这篇文章是不是大家都已经行动啦,快点去完善你的SQL Server数据库吧!

时间: 2024-08-22 15:22:08

SQL Server安装完成后3个需要立即修改的配置选项_MsSql的相关文章

SQL Server安装完成后3个需要立即修改的配置选项

你用安装向导安装了全新的SQL Server,最后你点击了完成按钮.哇噢~~~现在我们可以把我们的服务器进入生产了!抱歉,那并不是真的,因为你的全新SQL Server默认配置是错误的. 是的,你没看错:SQL Server的默认安装在很多方面的配置是错误的.在今天的文章里,我想给你展示下,为了更快的性能,在SQL Server安装完成后3个你需要立即修改的配置选项.我们开始吧! 最大服务器内存(Max Server Memory) 免责声明:如果这些天你在32位系统上运行你的SQL Serve

一次特殊的SQL Server安装奇遇

server 最近,我遭遇了一次奇特的SQL Server安装经历,在这里把它写出来,和朋友们一起学习,探讨. 我的系统是WIN2000标准服务器版,第一次安装系统时候能够正确安装和运行SQL Server2000.由于最近系统中安装的Office中的ACCESS文件数据库表无法打开,在多次重新安装Office系统无效的情况下,只好重新安装了WIN2000操作系统,安装操作系统很顺利. 一.遭遇: 我安装了Office2000和Borland Delphi7,这时能够正常的运行和管理Office

解决Sql Server安装时提示挂起的方法

安装 SQL2000 时,系统经常会提示:操作被挂起,要求重新启动计算机,如图1: 图1 重新启动后,再次安装时问题仍然存在. 解决办法: 1:在开始菜单中点击运行,输入 regedit ,打开注册表. 2:展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 单击FileRenameOperations键,删除右侧界面中出现的PendingFileRenameOperations键值 3:重新安装 SQL S

ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接

原文:ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接 安装ArcSDE for SQL Server,最后一步成功后的界面如下: 在ArcMap中创建ArcSDE连接,截图如下:    

SQL Server 2000卸载后重新安装的问题

1.安装SQL Server 2000出现"以前进行的程序安装创建了挂起的文件操作"的解决办法: a.在开始->运行中输入regedit b.到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 位置 c.在右边窗口右击PendingFileRenameOperations,选择删除,然后确认   2.SQL Server 2000卸载后不能重新安装: a.删除注册表如下两个键     HKEY_

SQL SERVER打补丁后的版本号

server SQL SERVER打补丁后的版本号,select @@version.Version NumberService Pack8.00.194Microsoft SQL Server 20008.00.384Microsoft SQL Server 2000 SP18.00.532Microsoft SQL Server 2000 SP28.00.760Microsoft SQL Server 2000 SP38.00.818Microsoft SQL Server 2000 SP3

software-标题: SQL Server 安装程序失败。

问题描述 标题: SQL Server 安装程序失败. 标题: SQL Server 安装程序失败. SQL Server 安装程序遇到以下错误: 找不到注册表项"SOFTWAREMicrosoftMicrosoft SQL Server100ConfigurationState". 错误代码 0x84BB0001. 按钮: 确定 是因为安装sqlserver第一次没有安装成功,卸载了也没有完全卸载干净,然后安装sql server 2008 r2说注册表无法删除,我就按照网上的操作把

sql server 2008分组后如何实现分页查询

问题描述 sql server 2008分组后如何实现分页查询 我的SQL语句是这样的 select left(loginDate,10) ,skipUrl,count(loginDate) FROM loginlog group by skipUrl,left(loginDate,10) order by left(loginDate,10) desc 我自己试了很多总方式都不对的,不知道问题出在哪里的了?希望大侠帮忙解决下的了谢谢! select top 10 left(loginDate,

SQL Server数据库崩溃后的恢复之法

任何数据库系统都无法避免崩溃的状况,即使你使用了Clustered,双机热备--仍然无法完全根除系统中的单点故障,何况对于大部分用户来说,无法承受这样昂贵的硬件投资.所以,在系统崩溃的时候,如何恢复原 有的宝贵数据就成为一个极其重要的问题了. 在恢复的时候,最理想的情况就是你的数据文件和日志文件都完好无损了,这样只需要sp_attach_db,把数据文件附加到新的数据库上即可,或者在停机的时候把所有数据文件(一定要有master等)都copy到原有路径下也行, 不过一般不推荐这样的做法,sp_a