博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Intra-Query Parallel Thread Deadlocks
阅读量:6881 次
发布时间:2019-06-26

本文共 9226 字,大约阅读时间需要 30 分钟。

今天碰到了  Intra-Query Parallel Thread Deadlocks 简单的说就是并发查询把自己给锁住了。

原理:

  在并发查询运行是,有一个生产者和一个消费者,生产者等待消费者产生数据,而消费者等待生产者处理完数据。本来是不应该出现死锁的情况的。出现死锁就是因为sql server 有bug,但是修补这个bug可能风险太高所以一直没有修补。

实例:

  贴上我今天抓到的intra-Query Parallel 死锁

  

select * from vw_package_length
Proc [Database Id = 7 Object Id = 240055941]
select * from (select p.ID, p.title, p.classID, p.smallPic, p.author, p.announcer, p.series, p.brief, p.feeChanID, (select count(1) from ProductAudio where status = 1 and productID = p.ID) as C, row_number() over(order by p.orderCount desc) as

处理方法:

  1.调整索引让执行计划更加有效

  2.加查询提示设置maxdop,当然可以设置全局的dop,但是我是不建议

关于这类型的死锁在书《Troubleshooting SQL Server》有提到

更加详细的可以看这里:

    本文转自 Fanr_Zh 博客园博客,原文链接:http://www.cnblogs.com/Amaranthus/p/3171068.html,如需转载请自行联系原作者
你可能感兴趣的文章
微信公众号支付开发全过程(Java 版)
查看>>
SwiftLint代码规范属性说明(二)
查看>>
本周半价(12.16-12.22)电子书
查看>>
是时候深入了解Linux的系统结构了
查看>>
4月第3周业务风控关注 | 文化部再次审查直播和游戏产品,已下架4939款直播应用...
查看>>
源码探探之startActivity(二)
查看>>
深入了解Flutter的isolate(1) ---- 事件循环(event loop)及代码运行顺序
查看>>
startService() 过程
查看>>
WebSocket 协议 1~4 节
查看>>
Android-WItemTouchHelperPlus几行代码搞定仿QQ侧滑
查看>>
Glide 知识梳理(5) 自定义GlideModule
查看>>
聊聊eureka的delta配置
查看>>
Masonry 源码解读(下)
查看>>
Swift如何给应用添加3D Touch菜单
查看>>
05_Node js 文件管理模块 fs
查看>>
关于python中可迭代对象和迭代器的一些理解
查看>>
界面无小事(五):自定义TextView
查看>>
ES6读书笔记(三)
查看>>
视频播放器全屏旋转方案
查看>>
根据调试工具看Vue源码之生命周期(一)
查看>>