前言:

SQLServer提供了一个系统存储过程,SP_Configure,可以帮助你管理实例级别的配置。微软建议使用默认配置,但是基于不同的服务器、不同负载的系统和你的用法,更改配置可能会给你的性能带来好处。在32位和64位系统中,sp_configure会有一些差异。

我们经常见到SQLServer所在的服务器上还包含了如IIS、文件服务器或者域控制器这些服务或者功能。这些会影响你的性能甚至对正常运作有阻碍作用。

本系列文章将包含:

1、 为SQLServer配置更多的处理器。

2、 32位和64位系统中的内存配置。

3、 配置“对即时负载的优化”。

4、 优化SQLServer实例的配置。

配置SQLServer以使用更多的处理器:

今时今日的系统,数据库变得越来越大。为了更快地从数据库获取信息,仅靠管理你的数据库并不足够,还需要更多的CPU来处理。

不管你如何高效地维护索引和统计信息,你都很难从一个使用低效CPU的SQLServer中获得足够好的响应时间。如何选择合适的CPU用于数据库的运作不在本系列的范围之内,但是我们将演示如何使的你的CPU运作得更加强大和有效。

你是否曾经想过SQLServer在运行查询的时候会使用多少个CPU?用户经常希望通过购买更多、更快的CPU来加快SQLServer的运作,但是更重要的应该是关注在SQLServer在运行时需要用到多少个?

开始工作:

在开始深入之前,需要了解你的服务器上有多少个CPU。可以使用一个SQLServer的DMV,sys.dm_os_sys_info来查找这部分的信息。这个DMV会尝试返回关于计算机和关于资源消耗等方面的信息:

SELECT  cpu_count AS 'Cores' ,--逻辑CPU总数hyperthread_ratio   --一个物理CPU的逻辑内核与物理内核的比
FROM    sys.dm_os_sys_info

步骤:

1、 为了设置在实例级别上运行查询时用到的CPU数量,执行下面语句:

--0是默认值
sp_configure 'max degree of parallelism', 0
RECONFIGURE WITH OVERRIDE
GO

2、 从语句级别去设置并行度的值,可以使用hint来实现,下面加上SETSTATISTICS TIME来看看不同的并行度的差异:

SET STATISTICS TIME ON
SELECT  *
FROM    Sales.SalesOrderDetail
OPTION  ( MAXDOP 1 )
SET STATISTICS TIME OFF
GOSET STATISTICS TIME ON
SELECT  *
FROM    Sales.SalesOrderDetail
OPTION  ( MAXDOP 0 )
SET STATISTICS TIME OFF
GO

下面是截图:

分析:

SQLServer 有很优秀的算法体系去决定是否并行运行查询。改写SQLServer的决定需要经验和专业知识。至于使用多少个CPU,这个比较确定的方法就是——试验。

在步骤1中,使用SP_Configure存储过程来把最大并行度设为0,也就是默认值,这个值代表这SQLServer是否生成并行执行计划,如果是,可以使用多少个CPU。如果你设置为4,SQLServer将使用4个核心来处理查询,如果设为1,就不会发生并行度。

在步骤2中,使用OPTION来对特定查询设置并行查询。这里有两个SELECT语句同时执行。第一个查询使用了MAXDOP =1,意味着不使用并行度执行查询,而第二个查询使用了MAXDOP =0,意味着由SQLServer自己决定是否使用并行度运行。

在加了SET STATISTICS TIME之后,可以看到每个查询总共消耗了多少CPU时间。

扩充知识:

在生产环境中更改默认的最大并行度将会非常危险。所以尽可能保持现状,如果你想修改,需要和你的上司或者同事商讨。经验表明,SQLServer并不总是为了单一查询而使用所有CPU。除此之外,在OLTP系统中,不建议调整这个设置,但是在OLAP系统中,这却是可以考虑的。

另外,如果你有16个核心,并把MaxDegree of Parallelism设为8,并不以为这只有8个核心会用在SQLServer上,仅仅代表单一查询不会使用超过8个核心而已,即使在并行运行,也如此。但是SQLServer依然会使用所有可用的核心。

第十七章——配置SQLServer(1)——为SQLServer配置更多的处理器相关推荐

  1. [置顶] 第十七章——配置SQLServer(2)——32位和64位系统中的内存配置

    前言: 本文讲述32位和64位系统中的内存配置,在SQLServer 2005/2008中,DBA们往往尝试开启AWE来限制内存.但是,在SQLServer2012以后,这个选项将被弃用,所以不能使用 ...

  2. SQLSERVER中的网络配置

    关于sqlserver中的网络配置,以前也用sqlserver2005做过东西,有时连接出错时,不是baidu就是google,对于这些常见的东西,一点都不明白是什么意思,惭愧啊,今天看了本书,写的不 ...

  3. 浅谈优化SQLServer数据库服务器内存配置的策略

    引文 http://demo.nbarticle.com/view/2004/8/9/view_1827.htm 农业银行总行1998年以来正式推广了新版网络版综合业务统计信息系统,该系统是基于Win ...

  4. oracle gg 有两个字段没同步到,GG配置Oracle同步到SQLServer

    欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 GG配置Oracle同步到SQLServer 源端目标端准备一张测试用的表. Oracle源端: drop table ...

  5. Eclipse下用JFS和Tomcat防问SQLServer数据库的以下配置

    Eclipse-jee-europa-fall2-win32.zip 下用JFS和Tomcat防问SQLServer数据库的以下配置: //server.xml  必须放在工程内 <Resour ...

  6. 加载java连接sqlserver驱动_sqlserverdriver配置方法 jdbc连接sqlserver

    一.下载驱动程序. 下载地址:http://download.microsoft.com/download/8/B/D/8BDABAE2-B6EA-41D4-B903-7916EF3690EF/sql ...

  7. SQLServer 2012 Always on配置全过程

    AlwaysOn取数据库镜像和故障转移集群之长.AlwaysOn不再像故障转移集群那样需要共享磁盘,从而主副本和辅助副本可以更容易的部署到不同的地理位置:AlwaysOn还打破了镜像只能1对1的限制, ...

  8. 鸟哥的Linux私房菜(基础篇)- 第十七章、程序管理与 SELinux 初探

    第十七章.程序管理与 SELinux初探 最近升级日期:2009/09/11 一个程序被加载到内存当中运行,那么在内存内的那个数据就被称为程序(process).程序是操作系统上非常重要的概念,所有系 ...

  9. 第十七章 apache 性能调优

    前言 本文档基于对apache的学习整理而成的笔记.本文档详细的记录了apache各种应用,以及一些个人的理解,如果偏差,请和我联系,以在下一个版本中进行更正.其中大部分文档均来自网络,感谢网络上各位 ...

最新文章

  1. vue项目结构php写哪里,Vue-cli搭建项目后目录结构的分析(图文)
  2. 在linux下查询日志
  3. UML博客建模--模块与类图
  4. latex textbf没有用_LaTeX排版软件札记 Win10 LyX+TeXLive
  5. 安装android到u盘安装程序,在u盘内安装android教程
  6. Shell编程:Bash引号的那点事
  7. 大数据可视化的优点有哪些
  8. Java中interface接口与abstract class抽象类的区别
  9. 中国孩子的micro:bit:TurnipBit自制小乐器教程实例
  10. 机械革命bios升级_机械革命X3-S评测:感受来自i7-10875H和RTX2060的怒吼
  11. 封装设计 SLC、MLC和TLC
  12. zabbix安装教程
  13. 读写卡测试程序VFP源代码
  14. Python返回列表的中位数
  15. 通过文件流转加密压缩文件并下载
  16. css保持长宽比拉伸,使用CSS保持div的长宽比
  17. 微信点餐小程序设计与实现(一)
  18. 开启人工智能3.0时代,暴风AI电视7(55吋AI全面屏)评测
  19. SOA 和微服务有何区别?
  20. Python POST 爬虫爬取掘金用户信息

热门文章

  1. 【科创人独家】SegmentFault高阳:创业这事不作死也会死,“人和”是第一要素
  2. 产生随机字符串的方法
  3. CentOS系统命令自动补全方法
  4. Linux中完全卸载nginx及安装的详细步骤
  5. 初中python程序设计教学研究_初中Python程序设计教学方法初探
  6. 不要错过!腾讯强推Redis天花板级别之路成长手册!直接五篇齐飞!!
  7. [Warning] Warning once only: Detected a case where constraints ambiguously suggest a height of zero
  8. SSML语音合成标记语言详解
  9. 学猫叫计算机版教程,学猫叫手势舞教程
  10. Python熊猫:您可能不知道的技巧和功能