星空网 > 软件开发 > 数据库

SQL Server并行死锁案例解析

并行执行作为提升查询响应时间,提高用户体验的一种有效手段被大家所熟知,感兴趣的朋友可以看我以前的博客SQL Server优化技巧之SQL Server中的"MapReduce", SQL Server优化器特性-位图过滤(Bitmap),然而正如我一直强调的,任何事物均有利弊,重点在于抉择.近日有朋友问我关于在今年7月份SQL Saturday中分享的并行执行中关于并行死锁的内容,这里我就详细解释下我举的实例中的并行死锁.

     并行死锁我们可以理解为SQL Server的”BUG”,即按照并行方式执行时遭遇特定异常使得执行无法继续.官方给的解决方式大多很简单,改为串行就可以了.但其中还是有值得我们深究的地方以便我们更好的利用并行.

     注:由于案例涉及的并行知识点较多,缺乏相关知识的同学可以先预览一下我当时分享的PPT,如果有不清楚的地方也可以私信我. Inside Parallel Query

     闲篇到此,上实例

生成测试数据

SQL Server并行死锁案例解析SQL Server并行死锁案例解析
CREATE TABLE Numbers(  Number INT NOT NULL,  CONSTRAINT PK_Numbers     PRIMARY KEY CLUSTERED (Number)    WITH FILLFACTOR = 100)INSERT INTO NumbersSELECT  (a.Number * 256) + b.Number AS NumberFROM   (    SELECT number    FROM master..spt_values    WHERE       type = 'P'      AND number <= 255  ) a (Number),  (    SELECT number    FROM master..spt_values    WHERE       type = 'P'      AND number <= 255  ) b (Number)

View Code

接下来我们执行如下语句,取30000下最大偶数,此时我将执行并行数maxdop随意调整为奇数,3,5,7我的执行都可以迅速返回结果.

执行代码

SQL Server并行死锁案例解析SQL Server并行死锁案例解析
set statistics time onselect    maxN=max(num.number)from dbo.numbers as numwhere    num.number<30000   and convert(integer,convert(varchar(max),num.number)) % 2=0option(Maxdop 3,-----5,7querytraceon 8649);

View Code

但当我将并行数调整为偶数时,执行时间居然长达数秒…打开trace profiler跟踪dead lock chain我们发现,当并行数为偶数时出现了死锁.

如图1-1,1-2,1-3

SQL Server并行死锁案例解析SQL Server并行死锁案例解析
select    maxN=max(num.number)from dbo.numbers as numwhere    num.number<30000   and convert(integer,convert(varchar(max),num.number)) % 2=0option(Maxdop 4,-----2,6querytraceon 8649);

View Code

 

SQL Server并行死锁案例解析

                                    图1-1

SQL Server并行死锁案例解析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

                                            图1-3

 

咋一看有的同学可能觉得蹊跷,Bug可能是很多人的第一反应.而到底发生了什么由我们具体分析下并行死锁的相应执行计划

分析:

1访问基表数据时用的是聚集索引扫描,但扫描方式是backward,而SQL server中只有forward scan可以并行扫描,backward只能串行扫描

2 因此在做exchange向各个threads分发数据时(distribute streams)采用roundrobin轮询分发数据,这势必造成奇偶数据按threads分开流向下一个过滤操作符

3 在Filter时将奇数的数据过滤,而相应的threads也就没有了数据

4 所以在最后exchange汇总数据时(gather streams)有的threads没有数据,因而造成死锁.

注:thread 0为主线程,不参与并行分支工作

分析如图2-1

SQL Server并行死锁案例解析

SQL Server并行死锁案例解析

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

2022年亚马逊招商全面开启,入场还是离场?:https://www.kjdsnews.com/a/546658.html
卖家哭了!亚马逊欧洲站贴标费用即将上涨:https://www.kjdsnews.com/a/546659.html
亚马逊FBA运输新政策!大批卖家将会受到影响?:https://www.kjdsnews.com/a/546660.html
九月惊喜:美国发钱了!你做好迎接九月爆单准备了吗?:https://www.kjdsnews.com/a/546661.html
史上最大规模!亚马逊拟全球招募5.5万名新员工:https://www.kjdsnews.com/a/546662.html
精华!亚马逊站外引流与私域流量实战复盘:https://www.kjdsnews.com/a/546663.html
温州旧货市场有玻璃柜卖吗?:https://www.vstour.cn/a/411246.html
如何用摄影作品表现“芳草鲜美,落英缤纷”的:https://www.vstour.cn/a/411247.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流