zoukankan      html  css  js  c++  java
  • 【转】SQL Server并行度问题

    咨询微软sql server工程师,收集第一个查询语句在两台机器上的查询计划,将结果保存后发送给微软工程师,经分析后,两台机器上同一sql语句的查询计划相同,但是两台机器的并行度不同,sql server默认有多少个核,并行度就是多少,判断可能是由于并行度不同而引起的。 

         hp并行度默认为4*6=24

        dell并行度默认为4*4=16

        将两台机器sql server的并行度都强制手工设置为4,然后进行测试,测试结果如下:

        在第一个查询最后加上参数 option(MAXDOP 4),然后分别在hp和dell上执行,耗时都是2s,将参数值改为 1 后,耗时都是1s。

         在第二个查询最后加上参数option(MAXDOP 4),然后分别在hp和dell上执行,耗时都是2s,将参数值改为 1 后,耗时都是1s。

        由此可看出,问题确实是由并行度不同而引起的。

    并行度越高,sql查询并不一定就越快,可能会变慢,但也并不是核越少越好。

        在执行查询的时候,sql server会自动分析sql语句,制定查询计划,为每颗CPU分配任务,cpu过多的话,分配任务所耗的时见就越长,但查询本身执行时间并没有变长。在达到4CPU后,cpu主频越高,sql查询就越快。

        一般情况下,在自定义sql server所使用的核数的时候,可以用总核数 /2或4。

        微软根据实际经验得出,sql server用4个核效率最高。对于sql server来说,cpu是透明的,并不关心哪颗核位于哪颗CPU上。

       sql server所支持的cpu个数受sql server版本和操作系统版本所影响。

       sql server 2000 sp4 + windows2003 sp2,sql server最多支持4个核。 

       并行度对SQL Server2000,2005,2008都有影响,实际上都只支持4个核。

      更改sql server并行度有两种方法,如下:

       1.在服务器级别适用如下语句更改

    在sql语句结尾处关闭统计 :

    select getdate()
    set statistics profile off
    set statistics io off
    set statistics time off

    如此可以得到该sql语句执行的磁盘 io开销、 时间信息,便于我们以后分析其他sql语句、查找数据库瓶颈。

    sql的服务器属性的 处理器选项卡 当中的默认值最好不要进行更改,如果更改有可能引起数据库的不稳定,通过该选项卡更改,是需要从新启动服务器。更改设置 最好通过 sql语句来进行,不需要重新启动服务器。---- 微软选项卡功能读解:1)处理器控制:通过该项可以选择使用的cpu2)最大工作线程:255 (在微软的官方网站上可以看查到,8颗cpu 可以设置到480 ,但建议不要设置)
    3)在windows上提升 sqlserver的优先级:该项可以设置,在专门的数据库服务器上可以设置该项,但仅限于专门的sql server服务器。--- 微软也认可。

  • 相关阅读:
    openstack 之Queen版本安装完成创建实例状态报错为ERROR
    重启nova-scheduler服务,报错Login was refused using authentication mechanism AMQPLAIN
    Failed to contact the endpoint at http://controller:35357/ for discovery. Fallback to using that endpoint as the base url.
    在centos系统的/etc/hosts添加了 当前主机的 ‘ NAT分配的IP controller’,RabbitMQ添加用户报错。
    一对简单的IPV6 SOCKET代码
    字节转换函数
    libevent笔记6:ssl bufferevent
    libevent笔记5:水位watermarks
    libevent笔记4:Filter_bufferevent过滤器
    libevent笔记3:evbuffer
  • 原文地址:https://www.cnblogs.com/dba-fcl/p/3753753.html
Copyright © 2011-2022 走看看