SQL SERVER 2014下无法创建表的问题原创
2人赞赏了该文章
140次浏览
未经作者许可,禁止转载编辑于2023年09月07日 17:05:26
环境
SQL Server 2014 +SP2
问题
执行create table test(fid int)或者select * into test时,无法完成。查看会话执行情况时,获取下面的信息:
多个建表的会话同时执行时,信息如下:
分析
从上面的信息,可以看到等待的资源都是61:1:311270(61为当前的数据库ID,不同的数据库,该值会不同。注意排除为2的情况,2表示为tempdb)。
执行dbcc traceon(3604)后,再执行dbcc page(61,1,311270)查看该页所属的对象。
可以看到objectid=60,通过select object_name(60)获取对应的表名为sysobjvalues,即这些会话都在等待系统表的PAGELATCH_EX的排他锁。
查询微软官方,发现类似的描述:
基本明确为SQL SERVER的BUG
解决方式
安装SQL SERVER 2014的最新补丁
建议
安装SQL Server后,需要及时更新补丁
附
SQL Server 2016也存在类似的问题,同样需要打最新补丁解决。