是否有明确的命令或强制执行 SQL Server 不是'CACHE'我的查询结果 ?
我正在处理性能问题,当我在第二次调用时完成一个长查询时需要太快,为了比较查询性能,当我进行修改时,我希望此行为不会发生。
这可能吗?
答案 0 :(得分:3)
你做错了。请改用精确测量:启用SET STATISTICS IO ON
和SET STATISTICS TIME ON
,然后比较查询。查看您的查询所具有的逻辑读取数,这将是提高性能的驱动因素。
如果您强制执行冷缓存(可能),那么您正在针对错误的情况进行优化,因为大多数时候您的生产服务器都会被预热并从缓冲池中提供数据。
此外,您第一次看到由查询驱动的重要IO的事实清楚地表明了表扫描。查询重写可能有所帮助,但您真正的问题更可能是缺少索引,这就是您应该关注的内容。
答案 1 :(得分:2)
是。您需要查看此内容:http://www.mssqltips.com/sqlservertip/1360/clearing-cache-for-sql-server-performance-testing/。
答案 2 :(得分:1)
您确定要引用查询结果与执行计划的缓存吗?
选择不缓存执行计划可以在对象级别使用:
完成WITH RECOMPILE