首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何让SQL Server知道在查询中不能使用Cache?

如何让SQL Server知道在查询中不能使用Cache?
EN

Stack Overflow用户
提问于 2009-12-07 07:14:05
回答 3查看 31.9K关注 0票数 26

这只是一个一般性的问题:

是否有可以传递给SQL Server的查询/命令,使其在执行特定查询时不使用缓存?

我正在寻找可以设置的查询/命令,而不是配置设置。不需要这样做吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-07 07:33:51

代码语言:javascript
复制
DBCC FREEPROCCACHE

将移除所有缓存的过程执行计划。这将导致所有后续过程调用被重新编译。

WITH RECOMPILE添加到过程定义将导致该过程在每次被调用时都被重新编译。

我不相信(在SQL2005或更早的版本中)有任何方法可以清除单个过程执行计划的过程缓存,我也怀疑您在2008年能否做到这一点。

票数 26
EN

Stack Overflow用户

发布于 2009-12-07 15:52:03

如果您希望强制查询不使用数据缓存,最好的方法是在运行查询之前清除缓存:

代码语言:javascript
复制
CHECKPOINT
DBCC DROPCLEANBUFFERS

请注意,强制重新编译不会对查询使用数据缓存产生任何影响。

不能只标记单个查询来避免缓存的一个原因是,缓存的使用是执行查询的一个组成部分。如果数据已经在缓存中,那么如果第二次读取数据,SQL Server将如何处理这些数据?更不用说同步问题了。

票数 24
EN

Stack Overflow用户

发布于 2009-12-07 07:19:52

使用

代码语言:javascript
复制
WITH RECOMPILE
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1856966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档