1

在另一个问题中,我试图研究如何控制 SQL Server 的查询计划缓存:

https://stackoverflow.com/questions/2593749/is-there-an-equivalent-of-optionrecompile-or-with-recompile-for-an-entire-c

...我通过这篇文章找到了跟踪标志 253:

http://www.sqlservercentral.com/Forums/Topic837613-146-1.aspx

文章是正确的,如果我运行 DBCC TRACEON(253) 然后进行一些查询,我可以手动检查查询计划缓存并查看计划尚未插入。如果我运行 DBCC TRACEOFF(253),查询计划将正常缓存。

所以我的问题是......这个标志还有什么作用?有人知道官方的说法吗?

4

1 回答 1

1

正如您所说以及Jon Seigels评论中提到的那样,它:

防止临时查询计划留在缓存中。

不应该做任何其他事情。但是,正如此处针对跟踪标志所述,通常:

跟踪标志导致数据库引擎执行可能没有经过严格测试或具有特定目的并且可能具有不可预测的副作用的替代代码路径。

鉴于这是来自声称从产品团队成员那里听到的 MVP 的信息,它看起来是官方的。特别是因为微软自己在 MSDN 上的文档不包含可以在网上找到的所有跟踪标志——比如他评论中的 Jon Seigels 链接。

于 2011-07-06T11:39:57.163 回答