我有一个大表,想知道是否可以提高查询的性能。
运行简单查询需要几分钟时间。请参阅下面的执行计划: https://files.fm/down.php?cf&i=pxgp25tr&n=ep.sqlplan
我正在使用Microsoft SQL Server 2016,我有这个存储过程:
如何改善上述程序的表现?
这是我的执行计划:
https://www.brentozar.com/pastetheplan/?id=r1m43JclQ
有没有办法提高选择性能?
答案 0 :(得分:3)
我会添加OPTION(RECOMPILE)
:
SET @SQL = @Pre + @Select + @SQL + @GroupBy
=>
SET @SQL = @Pre + @Select + @SQL + @GroupBy + ' OPTION(RECOMPILE)';
我会使用此子句每次为动态SQL生成执行计划和/或基数估计(这是某种报告,因此我假设开销不应该太高)。 More info: OPTION (RECOMPILE) is Always Faster; Why?
以分号结束每个语句都是一种很好的做法。