SQL SERVER CXPACKET-Parallelism Wait Type 的惯用解决方案

最近我的两个库出现,出现较多的CXPACKET等待,在网上找了一下资料。其中有篇一个SQL Server专栏作家的文章不错,也解决了我的一些疑问,就翻译在这里。

  翻译整理仅用于传播资讯之目的。

  原文出处:http://blog.sqlauthority.com/2011/02/06/sql-server-cxpacket-parallelism-usual-solution-wait-type-day-6-of-28/

  翻译整理:Joe.TJ

  CXPACKET 已经成为所有等待类型中最常见的一种了。我通常会在多CPU系统的前五位等待类型统计中看见CXPACKET.

 

  联机丛书:

    当尝试同步查询处理器交换迭代器时出现。如果针对该等待类型的争用成为问题时,可以考虑降低并行度。

 CXPACKET 解释:

    当为SQL查询创建一个并行操作时,会有多个线程去执行这个查询。每个查询处理不同的数据集或行集。

      因为某些原因,一个或多个线程滞后,而产生了CXPACKET等待状态。

      有一个组织/协调(organizer/coordinator)线程(Thread 0),它需要等待所有线程完成并聚合数据来呈现给客户端。

      组织线程必须等待所有线程完成处理才能进行下一步。由于组织线程等待缓慢的线程完成处理所产生的等待,就叫CXPACKET等待。

      请注意,并不是所有的CXPACKET等待类型都是不好的事情。你也许会遇某个CXPACKET等待是完全有意义的案例,有时它也是不可避免的。

      如果你在任何查询上禁止此种等待,那么查询也许会变慢,因为不能为它执行并行操作。

 减少CXPACKET等待:

    我们不能抛开服务器负载类型来讨论减少CXPACKET等待。

   OLTP: 在纯OLTP系统上,它的事务较短,查询也不长,但是通常很快速。设置“Maximum degree of Parallelism”(MAXDOP)为1。

          这样做可以确保查询永远不必使用并行方式运行,并且不会导致更多的数据库引擎开销。         

EXEC sys.sp_configure N'cost threshold for parallelism', N'1'
GO
RECONFIGURE WITH OVERRIDE
GO

   Data-warehousing / Reporting server: 因为查询执行时间一般较长,建议设置“Maximum degree of Parallelism”(MAXDOP)为0。

                                            这样大多数查询将会利用并行处理,执行时间较长的查询也会受益于多处理器而提高性能。      

EXEC sys.sp_configure N'cost threshold for parallelism', N'0'
GO
RECONFIGURE WITH OVERRIDE
GO

     Mixed System (OLTP & OLAP):这样环境会是一个挑战,必须找到正确的平衡点。我采取了非常简单的方法。

                                 我设置“Maximum degree of Parallelism”(MAXDOP)为2,这样意味着查询仍会使用并行操作但是仅利用2颗CPU。

                                 然而,我把“并行查询阀值”设置为较高的值,这样的话,不是所有的查询都有资格使用并行,除了那些查询成本较高的查询。

                                 在一个即有OLTP查询又有报表服务器的系统上,我发现这样做运行得很好。

                                 在这里我将会设置“‘Cost Threshold for Parallelism’”为25(如图)。你可以选择任何值。但你只能通过在系统上做实验来找到合适的值。

                                 在下面的脚本中,我设置“Max Degree of Parallelism”为2,这样的话,那些具有较高成本的查询(这里是25),将会在2颗CPU上执行并行查询。

                                 同时,不管服务器有多少颗CPU,查询只会选择两颗CPU来执行。               

EXEC sys.sp_configure N'cost threshold for parallelism', N'25'
GO
EXEC sys.sp_configure N'max degree of parallelism', N'2'
GO
RECONFIGURE WITH OVERRIDE
GO

 

--------------------------------------------

如蒙转载或引用,请保留以下内容:
Joe's Blog:http://www.cnblogs.com/Joe-T/

 

完整维护过程:

 

这里涉及两个值:

cost threshold for parallelism 是默认设定 5S. the estimated cost 高于5S才安排并发

sp_configure 'show advanced options', 1;

GO

RECONFIGURE WITH OVERRIDE;

GO

sp_configure 'max degree of parallelism', 4;--假如是8个(核)cpu

GO

RECONFIGURE WITH OVERRIDE;

GO

max degree of parallelism 能最大限制的控制并行导致CPU不可用而造成的短查询的等待

sp_configure 'show advanced options', 1;

GO

RECONFIGURE WITH OVERRIDE;

GO

sp_configure 'cost threshold for parallelism', 10;--将此时间增加

GO

RECONFIGURE WITH OVERRIDE;

GO

也可以单独指定option(maxdop 1)来限制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用于安卓手自我的一个好友偷摸搬运过来、刷机精灵、甜辣椒什么的有时对机型支持并不是那么完善的、关键时刻还的需要通用的adb命令自己动手、把adb完整工具包放在系统system32下、打开cmd、输入adb shell测试通过即可、当然了、在这些之前驱动安装什么的都是必须的哦~~】 adb devices 查看连接在电脑上的设备及其sn码 adb shell 进入手机的超级终端Terminal(远程登陆到手机上的android系统) 在shell中的命令: su 以root权限进行操作 mount * 挂载对应分区 rm * 删除对应文件 ls 例出当前的文件目录 映射出目录 mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system exit 退出 重新挂载文件系统 adb remount adb reboot 重启 adb reboot-bootloader 重启到bootloader adb reboot recovery 重启到recovery 安装软件 adb install apk文件名称.apk 重新安装该软件 adb install -r apk文件名称.apk 卸载apk软件 adb uninstall apk包名.apk 查看手机上的运行日志,此项可以用来查错 adb logcat A为手机路径,B为电脑路径,意思为:把文件从手机中复制到电脑上 adb pull A为手机路径,B为电脑路径,意思为:把文件从电脑复制到手机上 adb push 重启手机 adb reboot 重启到Recovery界面 adb reboot recovery 重启到bootloader界面 adb reboot bootloader 增加flash_image文件到手机上 adb push flash_image.zip /system/bin/flash_image recovery先复制到卡上 adb push *.img /sdcard 修改文件属性 chmod 0755 /system/bin/flash_image fastboot getvar all 获取手机所有信息 fastboot getvar product 获取手机内部版本号(一般为vle或villec2) fastboot getvar cid 获取cid (刷RUU必备啊) fastboot oem get_identifier_token 获取用户标识码(官解用) fastboot flash boot boot.img 刷boot(boot文件放在同目录下) fastboot boot boot.superboot.img s3获取root(root文件boot.superboot.img放在同目录下) fastboot flash unlocktoken Unlock_code.bin(解锁文件Unlock_code.bin放在同目录下) fastboot flash recovery * 刷入rec(rec文件放在同目录下) fastboot oem writecid 11111111 刷入超级cid,soff后使用 HTC解锁 (LZ就是火腿肠用户没办法~) http://www.htcdev.com/注册账号 http://www.htcdev.com/bootloader/unlock-instructions/page-3 登陆,使用用户标识码获取Unlock_code.bin fastboot flash unlocktoken Unlock_code.bin 刷入Unlock_code.bin 手机上按音量上后电源键 线刷zip版的ruu(慎用) 打开任意ruu 打开%temp% 找到以{*}的几个文件夹 找到有rom.zip文件的文件夹 把zip包改名为rom.zip,复制到对应文件夹中,解压android-info.txt到同样的文件夹中 操作同刷普通ruu一样 rec操作(以twrp为准) install 刷入zip格式的卡刷包 wipe 清除对应分区内的文件: cache 缓存 factory reset 恢复出厂设置 以上为刷机必须 internal storage 内部储存 external storage 外部储存 mount 挂载对应分区 sdcard sd卡分区(外部储存) data data分区(外部储存) system 系统分区 cache 缓存分区 机与

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值