这只是一个一般性的问题:
是否有可以传递给SQL Server的查询/命令,使其在执行特定查询时不使用缓存?
我正在寻找可以设置的查询/命令,而不是配置设置。不需要这样做吗?
发布于 2009-12-07 07:33:51
DBCC FREEPROCCACHE
将移除所有缓存的过程执行计划。这将导致所有后续过程调用被重新编译。
将WITH RECOMPILE
添加到过程定义将导致该过程在每次被调用时都被重新编译。
我不相信(在SQL2005或更早的版本中)有任何方法可以清除单个过程执行计划的过程缓存,我也怀疑您在2008年能否做到这一点。
发布于 2009-12-07 15:52:03
如果您希望强制查询不使用数据缓存,最好的方法是在运行查询之前清除缓存:
CHECKPOINT
DBCC DROPCLEANBUFFERS
请注意,强制重新编译不会对查询使用数据缓存产生任何影响。
不能只标记单个查询来避免缓存的一个原因是,缓存的使用是执行查询的一个组成部分。如果数据已经在缓存中,那么如果第二次读取数据,SQL Server将如何处理这些数据?更不用说同步问题了。
发布于 2009-12-07 07:19:52
使用
WITH RECOMPILE
https://stackoverflow.com/questions/1856966
复制相似问题