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)的更多相关文章
- 当很多连接到你的数据库时,报这种错误“已超过了锁请求超时时段” SqlServer数据库正在还原的解决办法
1)管理器不会主动刷新,需要手工刷新一下才能看到最新状态(性能方面的考虑) 2)很少情况下,恢复进程被挂起了.这个时候假设你要恢复并且回到可访问状态,要执行: RESTORE database ...
- 已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)
操作SQLServer数据库时.遇到这种问题:已超过了锁请求超时时段. (Microsoft SQL Server,错误: 1222) 经过查找材料了解为资源抢占,照成死锁,杀死进程就OK了.详细操作 ...
- SQL SERVER错误:已超过了锁请求超时时段。
问题:远程连接数据库,无法打开视图,报错:SQL SERVER错误:已超过了锁请求超时时段. (Microsoft SQL Server,错误: 1222) 执行语句获取进程id select * f ...
- Kill 锁,1222:已超过了锁请求超时时段,
应该是你的表体积很大,处理的时候费事,因为几乎所有数据库操作都需要加或多或少的锁,所以会超时.首先你可以使用select * from sys.sysprocesses where blocked&l ...
- SQL Server “超过了锁请求超时时段”错误
错误提示:“已超过了锁请求超时时段. (Microsoft SQL Server,错误: 1222)”(英文:“Lock Request time out period exceeded.(Micro ...
- 元数据管理器中存在错误。 实例化来自文件“\\?\C:\Program Files\Microsoft SQL Server\MSAS11.MSSQLSERVER\OLAP\Data\Tfs_Analysis.0.db\vDimTestCaseOverlay.874.dim.xml”的元数据对象时出错。
一.发现问题 启动SQLSERVER的数据分析服务失败 查看系统日志错误如下: 双击错误后显示详细错误: 元数据管理器中存在错误. 实例化来自文件“\\?\C:\Program Files\Micro ...
- sql server中 设置与查看锁的超时时间(ZT) @@LOCK_TIMEOUT
在数据库的应用系统中,死锁是不可避免的.通过设置死锁的处理优先级方法,可以在数据库引擎中自动检测到死锁,对发生的死锁会话进行干预,从而达到解除死锁的目点,但在这种情况下,会话只能被动的等待数据库引 ...
- sql server 2008启动时:已成功与服务器建立连接,但是在登录过程中发生错误。(provider:命名管道提供程序,error:0-管道的另一端上无任何进程。)(Microsoft SQL Server,错误:233) 然后再连接:错误:18456
问题:sql server 2008启动时:已成功与服务器建立连接,但是在登录过程中发生错误.(provider:命名管道提供程序,error:0-管道的另一端上无任何进程.)(Microsoft S ...
- SQL Server在本地计算机上用SSMS(SQL Server Management Studio)登录不上,错误消息:(Microsoft SQL Server, Error: 18456)
今天遇到了一个奇怪的问题,公司目前在SQL Server上都采用AD域账号登录,由于账号人数众多,所以我们建立了一个AD Group(域组),将大家的AD账号加入了这个AD Group,然后我们将这个 ...
随机推荐
- (十三)WebGIS中工具栏的设计之命令模式
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 从这一章节开始我们将正式进入WebGIS的工具栏中相关功能的 ...
- 奇妙的NULL值,你知道多少
<NULL值的多义性分析> 谈到NULL值,很多人都是很熟悉,但是深入了解后,又感觉到陌生,对其含义和用法,都无法很准确的理解.NULL在数据库和编程语言中,存在的意义和附带的含义不同. ...
- js实现可拖拽的div
前言 下午忙里偷闲想写一个可拖拽的例子,留在脑海里一直都是三个事件mouseDown,mouseUp,mouseMove, 但从没有动手实践过,今天想起了自己实践了并学习了张鑫旭的demo实现. 学习 ...
- spring boot 调试 - 热部署
maven gradle Maven: 命令行方式: mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport= ...
- 你不知道的HttpHandler相关知识
一.关于IHttpHandler.IsReusable 很多人不明白,这哥们到底干嘛的,估计是微软最初的一个想法--让一个对象可以一直不断地被重复使用 ,但这个想法不成熟,会带来很多隐藏问题,一个对象 ...
- pushState、replaceState、onpopstate 实现Ajax页面的前进后退刷新
使用Ajax可以异步获取数据,可以更高效地渲染页面. 但也存在这一些问题: 再刷新页面,页面就会变成初始的状态 浏览器的前进后退功能无效 对搜索引擎的爬虫抓取不友好 1. 早前会使用浏览器的 hash ...
- eclipse自动补全的设置(自动提示)
如果你用过Visual Studio的自动补全功能后,再来用eclipse的自动补全功能,相信大家会有些许失望. 但是eclipse其实是非常强大的,eclipse的自动补全没有VS那么好是因为e ...
- Java基础知识笔记(六:网络程序设计)
一.统一资源定位地址(URL) (1)网络地址 在网络上,计算机是通过网络地址标识.网络地址通常有两种表示方法,第一种表示方法通常采用4个整数组成,例如: 166.111.4.100表示某一网站服务器 ...
- ASP.NET MVC搭建项目后台UI框架—5、Demo演示Controller和View的交互
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- B-Tree索引在sqlserver和mysql中的应用
在谈论数据库性能优化的时候,通常都会提到“索引”,但很多人其实并没有真正理解索引,也没有搞清楚索引为什么就能加快检索速度,以至于在实践中并不能很好的应用索引.事实上,索引是一种廉价而且十分有效的优化手 ...



