第十七章——配置SQLServer(1)——为SQLServer配置更多的处理器
原文:第十七章——配置SQLServer(1)——为SQLServer配置更多的处理器
前言:
SQLServer提供了一个系统存储过程,SP_Configure,可以帮助你管理实例级别的配置。微软建议使用默认配置,但是基于不同的服务器、不同负载的系统和你的用法,更改配置可能会给你的性能带来好处。在32位和64位系统中,sp_configure会有一些差异。
我们经常见到SQLServer所在的服务器上还包含了如IIS、文件服务器或者域控制器这些服务或者功能。这些会影响你的性能甚至对正常运作有阻碍作用。
本系列文章将包含:
1、 为SQLServer配置更多的处理器。
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
GO SET 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配置更多的处理器的更多相关文章
- 第十七章——配置SQLServer(3)——配置“对即时负载的优化”
原文:第十七章--配置SQLServer(3)--配置"对即时负载的优化" 前言: 在第一次执行查询或者存储过程时,会创建执行计划并存储在SQLServer的过程缓存内存中.在很多 ...
- 第十七章——配置SQLServer(4)——优化SQLServer实例的配置
原文:第十七章--配置SQLServer(4)--优化SQLServer实例的配置 前言: Sp_configure 可以用于管理和优化SQLServer资源,而且绝大部分配置都可以使用SQLServ ...
- 第十七章——配置SQLServer(2)——32位和64位系统中的内存配置
原文:第十七章--配置SQLServer(2)--32位和64位系统中的内存配置 前言: 本文讲述32位和64位系统中的内存配置,在SQLServer 2005/2008中,DBA们往往尝试开启AWE ...
- sqlserverdriver配置方法 jdbc连接sqlserver
一.下载驱动程序. 下载地址:http://download.microsoft.com/download/8/B/D/8BDABAE2-B6EA-41D4-B903-7916EF3690EF/sql ...
- 采用sqlserver的缺省配置,在生产环境经常碰到系统响应慢(甚至hung的情况)
请重视并正确配置sqlserver实例及数据库的参数,一般化的配置推荐如下: 1.数据和日志文件的初始大小分别设置为10G和2G,均设置为按照固定200M大小增长,不限制最大值: 2.sever实例设 ...
- ogg 12.3 for sqlserver 2016 CDC模式配置
本文主要讲述ogg 12.3 通过CDC抽取sqlserver 2016 enterprise的过程,投递配置相对简单,所以不在此阐述. 配置步骤概述 1. 解压ogg 12.3 for sqlser ...
- 【第二章】Zabbix3.4监控SQLServer数据库和H3C交换机思科Cisco防火墙交换机教程笔记
监控SQLServer数据库 SSMS执行相关SQL SQL模板命名规则 Zabbix客户端导入模板 添加SQLServer监控图形 SQLServer服务器关联模板 监控思科Cisco防火墙交换机 ...
- SQLServer 2012 Always on配置全过程
AlwaysOn取数据库镜像和故障转移集群之长.AlwaysOn不再像故障转移集群那样需要共享磁盘,从而主副本和辅助副本可以更容易的部署到不同的地理位置:AlwaysOn还打破了镜像只能1对1的限制, ...
- Gradle 1.12用户指南翻译——第四十七章. Build Init 插件
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
随机推荐
- cocos2dx A* + tiledMap
本文转自:http://blog.csdn.net/w18767104183/article/category/1757765 前面一章讲了cocos2dx 中使用A星算法 这章中讲 A*结合tile ...
- Git管理工具对照(GitBash、EGit、SourceTree)
Git管理工具对照(GitBash.EGit.SourceTree) GitBash是採用命令行的方式对版本号进行管理,功能最为灵活强大,可是由于须要手动输入希望改动的文件名称,所以相对繁琐. EGi ...
- 在android创建bitmap避免低记忆法
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="ht ...
- XP下採用DirectShow採集摄像头
转载请标明是引用于 http://blog.csdn.net/chenyujing1234 欢迎大家提出意见,一起讨论! 须要演示样例源代码的请独自联系我. 前提: 摄像头能正常工作.摄像头有创建di ...
- Windows Phone开发(17):URI映射
原文:Windows Phone开发(17):URI映射 前面在讲述导航的知识,也讲了控件,也讲了资源,样式,模板,相信大家对UI部分的内容应该有了很直观的认识了.那么今天讲什么呢?不知道大家在练习导 ...
- 基于Office 365 无代码工作流分析-需求基本分析!
客户需求分析: 嘉昊信息是一家IT创业型公司,因为公司初创,有较多的招聘员工的需求,公司近期购买了Office 365,因为招聘工作繁琐,HR人员须要做非常多反复繁琐工作,HR主管提议开发一个招 ...
- UE4编码规范
翻译原文为Unreal 的官方!自己看着总结了一下,不一定每条都能对上.不足之处,请多多不吝赐教! 原文地址: unreal CodingStandard UE4编码规范 在Epic,有简单几条代码 ...
- java自学者的福音
谈到自学对于程序员来说并不陌生,自从我们离开校门就开始了自学之路.这一路上绝大部分都是 百步止于九十 步, 不是因为他们不够坚持,而是没有找到学习的方法和资源.当然这一路上我也走得很辛苦,刚毕业后自学 ...
- C#四舍五入保留两位小数
- CSDN markdown 编辑 三 基本语法
这是一个副本,在准备好了help档,另外补充一些他们自己的解释. 这一次是不说话UML和LaTEX. 准备抽两篇文章专门谈. 1. 标题和字体大小 markdown字号太少了.觉得应该再加些. 在文字 ...