SQL Server跟踪标志253有什么作用?

时间:2010-04-07 23:27:00

标签: sql sql-server sql-execution-plan

在另一个问题中,我试图研究如何控制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),查询计划将正常缓存。

所以我的问题是......这面旗帜还有什么作用?有人知道这个官方故事吗?

1 个答案:

答案 0 :(得分:1)

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

  

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

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

  

跟踪标志会导致数据库引擎执行可能未经过严格测试或具有特定用途的备用代码路径,并且可能具有无法预测的副作用。

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