如何提高存储过程中的SQL Server查询性能?

时间:2018-06-09 11:55:00

标签: sql-server tsql query-performance

我有一个大表,想知道是否可以提高查询的性能。

运行简单查询需要几分钟时间。请参阅下面的执行计划: https://files.fm/down.php?cf&i=pxgp25tr&n=ep.sqlplan

我正在使用Microsoft SQL Server 2016,我有这个存储过程:

如何改善上述程序的表现?

这是我的执行计划:

https://www.brentozar.com/pastetheplan/?id=r1m43JclQ

有没有办法提高选择性能?

1 个答案:

答案 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?

以分号结束每个语句都是一种很好的做法。