为什么TrackedMessages_Copy_BizTalkMsgBoxDb SQL代理作业开始失败"查询处理器无法生成查询计划"?
由于此查询中定义的提示,查询处理器无法生成查询计划。重新提交查询而不指定任何提示,也不使用SET FORCEPLAN。 [SQLSTATE 42000](错误8622)。
我们的SQL人员正在谈论修改存储过程。但我们告诉他们将BizTalk数据库视为black box
答案 0 :(得分:1)
您是否尝试更新存储过程引用的数据库表的统计信息(由SQL Server代理作业运行?查询规划器使用这些统计信息来决定如何最好地执行SQL。
答案 1 :(得分:1)
不言而喻,但在此之前,请确保备份您的数据库。实际上,如果您的常规备份作业正在运行,您可以恢复备份并将其与 在此服务器上工作时进行比较。那说 -
BizTalkMsgBoxDb.dbo.bts_CopyTrackedMessagesToDTA
)以确保其未被更改。如果这是一个生产或其他敏感的框,请在继续之前备份数据库并将其恢复到本地开发环境!
DBCC FREEPROCCACHE
)并查看该过程是否会运行。如果它在您的开发环境中从备份运行,您可能必须开始查看服务器/数据库设置。我想不出哪些可能会导致这个错误的问题。
对于它的价值,善意的DBA经常打破BizTalk。他们认为索引缺失或未正确覆盖,或者安全性可能得到改善,或者数据库应该像对待管理的其他数据库一样对待。我已经看到DBA对BizTalk数据库做了非常愚蠢的事情,很难诊断出来。