我可以明确强制执行SQL Server而不是CACHE我的查询结果集吗?

时间:2013-04-05 05:18:56

标签: sql sql-server sql-server-2008 tsql

是否有明确的命令强制执行 SQL Server 不是'CACHE'我的查询结果

我正在处理性能问题,当我在第二次调用时完成一个长查询时需要太快,为了比较查询性能,当我进行修改时,我希望此行为不会发生。

这可能吗?

3 个答案:

答案 0 :(得分:3)

你做错了。请改用精确测量:启用SET STATISTICS IO ONSET STATISTICS TIME ON,然后比较查询。查看您的查询所具有的逻辑读取数,这将是提高性能的驱动因素。

如果您强制执行冷缓存(可能),那么您正在针对错误的情况进行优化,因为大多数时候您的生产服务器都会被预热并从缓冲池中提供数据。

此外,您第一次看到由查询驱动的重要IO的事实清楚地表明了表扫描。查询重写可能有所帮助,但您真正的问题更可能是缺少索引,这就是您应该关注的内容。

答案 1 :(得分:2)

答案 2 :(得分:1)

您确定要引用查询结果与执行计划的缓存吗?

选择不缓存执行计划可以在对象级别使用:

完成
WITH RECOMPILE

值得一试:The Use and Abuse of RECOMPILE in SQL Server (Video)