SQLSERVER CXPACKET 等待
--SQLSERVER CXPACKET 等待 2013-6-11
2 --联机丛书:
3 --当尝试同步查询处理器交换迭代器时出现。如果针对该等待类型的争用成为问题时,可以考虑降低并行度
4
5
6
7 --CXPACKET 解释:
8 --
9 --当为SQL查询创建一个并行操作时,会有多个线程去执行这个查询。每个查询处理不同的数据集或行集。
10 --
11 --因为某些原因,一个或多个线程滞后,而产生了CXPACKET等待状态。
12 --
13 --有一个组织/协调(organizer/coordinator)线程(Thread 0),它需要等待所有线程完成并聚合数据来呈现给客户端。
14 --
15 --组织线程必须等待所有线程完成处理才能进行下一步。由于组织线程等待缓慢的线程完成处理所产生的等待,就叫CXPACKET等待。
16 --
17 --请注意,并不是所有的CXPACKET等待类型都是不好的事情。你也许会遇某个CXPACKET等待是完全有意义的案例,有时它也是不可避免的。
18 --
19 --如果你在任何查询上禁止此种等待,那么查询也许会变慢,因为不能为它执行并行操作。
20
21 --减少CXPACKET等待:
22 --
23 --我们不能抛开服务器负载类型来讨论减少CXPACKET等待。
24 --
25 --OLTP: 在纯OLTP系统上,它的事务较短,查询也不长,但是通常很快速。设置
26 --“Maximum degree of Parallelism”(MAXDOP)为1。
27 --
28 --这样做可以确保查询永远不必使用并行方式运行,并且不会导致更多的数据库引擎开销。
29
30 EXEC sys.sp_configure N'cost threshold for parallelism', N'1'
31 GO
32 RECONFIGURE WITH OVERRIDE
33 GO
34
35
36
37 --Data-warehousing / Reporting server: 因为查询执行时间一般较长,建议设置“Maximum degree of Parallelism”(MAXDOP)为0。
38 --
39 --这样大多数查询将会利用并行处理,执行时间较长的查询也会受益于多处理器而提高性能。
40 --
41 --Mixed System (OLTP & OLAP):这样环境会是一个挑战,必须找到正确的平衡点。我采取了非常简单的方法。
42 --
43 --我设置“Maximum degree of Parallelism”(MAXDOP)为2,这样意味着查询仍会使用并行操作但是仅利用2颗CPU。
44 --
45 --然而,我把“并行查询阀值”设置为较高的值,这样的话,不是所有的查询都有资格使用并行,除了那些查询成本较高的查询。
46 --
47 --在一个即有OLTP查询又有报表服务器的系统上,我发现这样做运行得很好。
48 --
49 --在这里我将会设置“‘Cost Threshold for Parallelism’”为25,你可以选择任何值。但你只能通过在系统上做实验来找到合适的值。
50 --
51 --在下面的脚本中,我设置“Max Degree of Parallelism”为2,这样的话,那些具有较高成本的查询(这里是25),
52 --将会在2颗CPU上执行并行查询。
53 --
54 --同时,不管服务器有多少颗CPU,查询只会选择两颗CPU来执行。
55
56
57 EXEC sys.sp_configure N'cost threshold for parallelism', N'25' --临界值,当查询成本达到25的时候
58 GO
59 EXEC sys.sp_configure N'max degree of parallelism', N'2' --使用两颗CPU
60 GO
61 RECONFIGURE WITH OVERRIDE
62 GO
63
64 --------------------------------------------------------
65 --在查询语句中使用maxdop
66 SELECT COUNT(*)
67 FROM t1 a
68 INNER LOOP JOIN t1 b ON b.c1 = a.c1
69 OPTION ( MAXDOP 1 ) --不允许使用并行处理
70 go
SQLSERVER CXPACKET 等待的更多相关文章
- CXPACKET等待事件
今天收到数据库预警,发现连接数较多.于是立马登录查看机器的基本情况: select * from sys.sysprocesses 查看了一下连接数,发现有两个进程都处于CXPACKET状态,而且看得 ...
- SQL点滴13—收集SQLServer线程等待信息
原文:SQL点滴13-收集SQLServer线程等待信息 要知道线程等待时间是制约SQL Server效率的重要原因,这一个随笔中将学习怎样收集SQL Server中的线程等待时间,类型等信息,这些信 ...
- SQL SERVER ->> CXPacket等待类型
最近做了一个项目,把整个数据仓库平台下所有的表和索引都改成页级别的数据压缩.昨天发现测试环境下的某个workload跑得比平时慢.最后我们定位了到这个workload做的事情中可能造成性能下降的地方, ...
- 收集SQLServer线程等待信息
要知道线程等待时间是制约SQL Server效率的重要原因,这一个随笔中将学习怎样收集SQL Server中的线程等待时间,类型等信息,这些信息是进行数据库优化的依据. sys.dm_os_wait_ ...
- 分享一下我研究SQLSERVER以来收集的笔记
分享一下我研究SQLSERVER以来收集的笔记 前言 为什麽分享??因为像现在网上很多人攻城师那样,转行去卖水果,卖早餐,总有一日我也会离开这个行业的 由于本人不是在大公司上班工资很低,我希望有一天存 ...
- SQL 笔记 By 华仔
-------------------------------------读书笔记------------------------------- 笔记1-徐 最常用的几种备份方法 笔记2-徐 收缩数据 ...
- WaitType:CXPACKET
CXPACKET 等待类型是SQL Server 并发执行一个query时产生的.在run一个big query时,SQL Server充分利用系统的所有资源(CPU,Memory,IO),在最短时间 ...
- SQLServer 维护脚本分享(06)CPU
--CPU相关视图 SELECT * FROM sys.dm_os_sys_info SELECT * FROM sys.dm_exec_sessions SELECT * FROM sys.sysp ...
- [翻译]SQL Server等待事件—THREADPOOL
前言: 本文是对SQLSkills上一篇关于SQL Server中THREADPOOL等待的博客的翻译,本文也不是完全翻译,有些地方适当加入了自己的一些认知.如有翻译不对或不好的地方,敬请指出,大 ...
随机推荐
- PHP 过滤特殊符号
function strFilter($str){ $str = str_replace('`', '', $str); $str = str_replace('·', '', $str); $str ...
- https传输过程嗅探
C1->浏览器告知服务器自身的信息 length = 165 a5 16 03 01 00 A0 01 00 00 9C 03 03 5E 1C 37 CD 40 [ ^ 7 @] B6 4A ...
- Tomcat优化详细1
在Tomcat和应用程序进行了压力测试后,如果您对应用程序的性能结果不太满意,就可以采取一些性能调整措施了,当然了前提是应用程序没有问题,我们这里只讲Tomcat的调整.由于Tomcat的运行依赖于J ...
- 使用adb shell 模拟点击事件
针对问题[appium无法点击到某一内容,需要使用adb去执行点击事件] 需要命令: adb shell adb devices input [input可以实现的功能]: 输入文本信息:input ...
- GUI的最终选择Tkinter模块初级篇
一.Tkinter模块的基本使用 1)实例化窗口程序 import tkinter as tk app = tk.Tk() app.title("FishC Demo") app. ...
- 使用Spring 简化MyBatis
1.导入mybatis所有的jar 和 spring 基本包,spring-jdbc,spring-tx,spring-aop,spring整合mybatis的包等. 2.编写spring配置文件ap ...
- WEB应用支持RESTFUL风格方法
REST概念 Restful就是一个资源定位及资源操作的风格.不是标准也不是协议,只是一种风格.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. REST风格 资源:互联网所有的事物 ...
- IntellJ IDEA 对于 Spring Boot2.0.2 配置文件application.properties 配置
1.指定文件名称: 打开IDEA编辑位置: 找到如图位置: 点开后方设置 设置输入如下内容:(默认的配置文件名字可以使用--spring.config.name来指定,只需要指定文件的名字,文件扩展名 ...
- 剑指offer42:不用加减乘除做加法
分析: (1)十进制加法分三步:(以5+17=22为例) 1. 只做各位相加不进位,此时相加结果为12(个位数5和7相加不进位是2,十位数0和1相加结果是1): 2. 做进位,5+7中有进位,进位的值 ...
- 关于WEB前端,你必须了解的发展方向
一.职业方向定位 首先,只有确定好自己的职业方向,才能做好职业规划.在我看来,做WEB前端技术能够找到的职业方向有以下几种: (1)资深WEB前端工程师 这个方向算是一个WEB前端最基本的选择了,在国 ...