SQL SERVER错误:已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)
在SSMS(Microsoft SQL Server Management Studio)里面,查看数据库对应的表的时候,会遇到“Lock Request time out period exceeded.(Microsoft SQL Server, 错误1222)”,对应的中文错误提示为“已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)”,如下截图所示,不管是用一般权限的账号还是具有sysadmin角色的登录名都是如此。
这个错误有点奇怪,检查该数据库服务器上监控阻塞的告警邮件,发现有Blocking告警,我用下面SQL语句查看,如下截图所示
如上所示,会话ID为65的语句执行 TRUNCATE TABLE [ESQ_ITEM_PRICE_FOR_DCA],它阻塞了会话ID为60的会话,而会话ID为60的会话是YourSQLDba正在更新统计信息
set nocount on ;With TableSizeStats as ( select object_schema_name(Ps.object_id, db_id('ODS')) as scn --collate Chinese_PRC_CI_AS , object_name(Ps.object_id, db_id('ODS')) as tb --collate Chinese_PRC_CI_AS , Sum(Ps.Page_count) as Pg From sys.dm_db_index_physical_stats (db_id('ODS'), NULL, NULL, NULL, 'LIMITED') Ps Group by Ps.object_id ) Insert into #tableNames (scn, tb, seq, sampling) Select scn , tb , row_number() over (order by scn, tb) as seq , Case When pg > 200001 Then '10' When Pg between 50001 and 200000 Then '20' When Pg between 5001 and 50000 Then '30' else '100' End From TableSizeStats where (abs(checksum(tb)) % 1) = 0
它阻塞了会话ID为68的会话
SELECT COUNT(1) FROM [ESQ_ITEM_PRICE_FOR_DCA]
上面这个案例,有两个比较迷惑的地方:
一:会话ID为65的进程处于Sleeping状态,而且该会话在执行TRUNCATE语句,照理说TRUNCATE应该非常快就执行完了。很是奇怪的是一个TRUNCATE会话处于Sleeping状态,这个会话是从Linux服务器Talend应用程序发出的请求。那么只有一种可能就是该TRUNCATE语句位于事务里面,而该事务由于逻辑原因等一直没有提交或回滚。
二:SQL阻塞语句居然导致了上面“Lock Request time out period exceeded.(Microsoft SQL Server, 错误1222)”。
关于上面两个问题,我们可以构造一个案例来看看,在测试数据库TEST里面的按下面步骤就能重新这个错误:
会话语句1:
BEGIN TRAN
TRUNCATE TABLE TEST;
--ROLLBACK;
会话语句2:
UPDATE STATISTICS dbo.TEST;
会话语句3:
如上所示,会话52处于sleeping状态了。然后你去SSMS里面查看表,就会遇到这个“已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)”错误。至于实际应用程序Talend是由于什么原因没有提交或回滚事务就不得而知。这个例子完美的演示并重现了这个问题
SQL SERVER错误:已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)相关推荐
- 已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)
操作SQLServer数据库时.遇到这种问题:已超过了锁请求超时时段. (Microsoft SQL Server,错误: 1222) 经过查找材料了解为资源抢占,照成死锁,杀死进程就OK了.详细操作 ...
- 如何解决SQLServer已超过了锁请求超时时段
如何解决SQLServer已超过了锁请求超时时段 在使用SQL Server2008数据库的过程中,查看数据库属性,遇到这样的问题:已超过了锁请求超时时段. (Microsoft SQL Server ...
- 已超过了锁请求超时时段_分布式锁:效率与正确性的衡权
提到分布式锁,很多人也许会脱口而出 "redis",可见利用 redis 实现分布式锁已被认为是最佳实践.这两天有个同事问我一个问题:"如果某个服务拿着分布式锁的时候,r ...
- SQL Server在本地计算机上用SMSS登录不上,错误消息:(Microsoft SQL Server, Error: 18456)...
今天遇到了一个奇怪的问题,公司目前在SQL Server上都采用AD域账号登录,由于账号人数众多,所以我们建立了一个AD Group(域组),将大家的AD账号加入了这个AD Group,然后我们将这个 ...
- Microsoft SQL Server 2000整合规划
Microsoft SQL Server 2000整合规划 更新日期: 2004年06月24日 SQL Server技术文章 作者:Allan Hirt 投稿人:Tom Davidson和Shaun ...
- 把Oracle数据库移植到Microsoft SQL Server 7 0
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 把Ora ...
- 《MS SQL Server 2000管理员手册》系列——8. 管理 Microsoft SQL Server 服务
8. 管理 Microsoft SQL Server 服务 SQL Server 服务组件 使用SQL Server服务管理员 使用 Windows 2000 服务控制管理员 使用 SQL Serve ...
- ef 连接localdb_如何连接和使用Microsoft SQL Server Express LocalDB
ef 连接localdb Microsoft SQL Server Express LocalDB is intended for developers, it is very easy to ins ...
- localdb 安装_如何安装Microsoft SQL Server Express LocalDB
localdb 安装 Microsoft SQL Server Express LocalDB, a solution primarily intended for developers, is a ...
最新文章
- JavaScript是如何同时做到单线程和异步执行的
- 2018 多校联合训练 10
- 【C语言简单说】十三:变量的生命周期
- 乐在其中设计模式(C#) - 原型模式(Prototype Pattern)
- LeetCode 1905. 统计子岛屿(BFS)
- python上传文件 request_Python request 上传文件
- NSOperation的使用细节 [3]
- [ActionScript 3.0] 喷泉效果
- 教你轻松搞定javascript中的正则
- 29日直播预告丨Oracle PDB Refresh实战分享
- 解决vmware“二进制转换和长模式与此平台兼容.....”问题
- 【C语言】之冒泡排序法(详解)
- java webservice接口开发实例_Webservice 接口开发简单例子
- Boost.Asio 网络编程([译]Boost.Asio基本原理)
- 商城购物APP——YiGo
- 国际群发短信平台适用于哪些行业?
- 洛谷P2404 Java解法
- 日常学习中遇到的好的资源(Graph Clustering and GNN)(持续更新)
- 自动脚本以及打包,将写好的脚本打包成exe可执行文件
- 重学OC第四篇:类结构之bits
热门文章
- Winform窗体初始化Combox控件并模糊查找内容
- 全球13个DNS根+主要省份城市的DNS服务器地址
- CCNA入门---交换机端口安全的四种行为
- 【心情】期待 Mr. Jack In New York!
- python检测端口是否被占用_Python_监测某一个端口是否被占用
- php拦截器配置,php 类中的各种拦截器
- python程序员总结的一些基本语法
- 增加点击量的软件_老板总吐槽销售分析报表又多又丑?你一定没用BI软件
- 无线ap软件_无线WLAN网络的优化技术
- 分析2021年私有云市场的发展趋势