Mar*_*lli 12 sql-server execution-plan sql-server-2012 errors plan-cache
我一直在 sql 错误日志上发现奇怪的错误消息:
Bocss:每小时都会发生同样的僵局——需要调查
根据以下示例,其他 SPID 的错误日志中还列出了许多重新编译:
2015年9月4日14:30:10,spid64,未知,用于SQLHANDLE 0x0200000059631A288882589E0C54B76404CAE1B97E08D3680000000000000000000000000000000000000000 PlanHandle 0x0600040059631A2860A62B654100000001000000000000000000000000000000000000000000000000000000检测到可能无限的重新编译起始偏移1038结束偏移2600的最后一个重新编译原因是2. 2015年9月4日14时三十分十秒,spid150,未知,是为SQLHANDLE 0x02000000EF886F018C4E0B163812B8B20150FE8FC7E6A06A0000000000000000000000000000000000000000 PlanHandle 0x06000400EF886F01901A816E0600000001000000000000000000000000000000000000000000000000000000起始偏移量998检测到的一个可能的无穷的重新编译结束偏移2520。最后重新编译原因是2. 2015年9月4日14:30:09,spid67,未知检测到可能无限的重新编译为SQLHANDLE 0x0200000057C4C632D9052275CFF2B683B80F29501EE91D730000000000000000000000000000000000000000 PlanHandle 0x0600040057C4C63200EAC2BE3000000001000000000000000000000000000000000000000000000000000000起始偏移1064结束偏移2652是2. 2015年9月4日14最后重新编译原因:30:09,spid163,未知,是为SQLHANDLE 0x02000000E7C7BF0E5D70DE55759C7842860272AD474D69AB0000000000000000000000000000000000000000 PlanHandle探测到一个可能无限的重新编译0x06000400E7C7BF0EF0EB68A52C00000001000000000000000000000000000000000000000000000000000000开始偏移量1028结束偏移2580的最后一个重新编译的原因是2。
是什么导致了这种情况?
按照这篇文章的建议 http://www.sqlservercentral.com/Forums/Topic1479420-146-1.aspx
然后作为安全措施禁用全文目录,这没有区别,所以我完全回滚了更改(删除了新对象等)。这也没什么区别,最后似乎唯一阻止它的是重新启动 SQL 实例,这立即解决了问题。
这也解决了我的问题,但是,我仍然要找出造成这种混乱的原因是什么?
Pau*_*ite 13
根据SQL Programmability & API Development Team Blog错误日志中的Infinite recompile消息,当批处理中的语句连续重新编译100次时会触发此消息。
此消息并不一定意味着存在问题;它的存在是为了帮助排除可能合法地经常重新编译的语句(例如,由于统计数据的快速变化)以及真正的无限编译循环(在极端情况下很少见)。
您应该首先从提供的信息中识别触发语句,并在给出重新编译原因的数字代码的上下文中对其进行评估。在联机丛书中的多个位置(包括SP:Recompile Event Class下)提供了这些代码及其含义的表格。
SQL Server 2012中的计划缓存和重新编译中提供了更多信息。
归档时间: |
|
查看次数: |
8833 次 |
最近记录: |