前言:
SQLServer提供了一个系统存储过程,SP_Configure,可以帮助你管理实例级别的配置。微软建议使用默认配置,但是基于不同的服务器、不同负载的系统和你的用法,更改配置可能会给你的性能带来好处。在32位和64位系统中,sp_configure会有一些差异。
我们经常见到SQLServer所在的服务器上还包含了如IIS、文件服务器或者域控制器这些服务或者功能。这些会影响你的性能甚至对正常运作有阻碍作用。
本系列文章将包含:
1、 为SQLServer配置更多的处理器。
2、 32位和64位系统中的内存配置。
今时今日的系统,数据库变得越来越大。为了更快地从数据库获取信息,仅靠管理你的数据库并不足够,还需要更多的CPU来处理。
- 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来看看不同的并行度的差异:
[sql] view plaincopyprint?
- 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,这个比较确定的方法就是——试验。