我在SSRS报告中使用了一个查询,其中包含20多个可选过滤器。这些过滤器在我的查询中生成一堆@PARAMETER IS NULL OR COLUMN = @PARAMETER,这是导致性能问题的一个原因。
我听说选项(RECOMPILE)会导致SQL Server在生成执行计划之前分析这个条件,所以我的问题是:对于这种查询,它是一个好的选项吗?
发布于 2015-08-03 19:21:09
这种模式的问题在于它阻止了索引的使用。重新编译专门针对所使用的确切参数值的查询。这将恢复索引使用情况。
如果查询运行时间远远大于编译时间,那么大量重新编译确实没有问题。在这种情况下,成本微不足道。对于手动执行的报告,50ms的编译时间应该不是问题。这是一个很好的用例。
https://stackoverflow.com/questions/31785822
复制相似问题