SQL Server - GROUP BY具有超过1000万行的性能

问题描述 投票:-1回答:1

SQL Server - 如何使用GROUP BY提高查询性能,并在超过1000万行的情况下使用30 + OR条件的HAVING子句

sql sql-server query-performance
1个回答
2
投票

如果您向我们展示您的查询(如果需要,您可以对其进行模糊处理),我们会更有帮助,但通常您可以创建计算的,持久的位列,为您预先计算OR语句:

https://blog.sqlauthority.com/2016/04/27/sql-server-computed-column-conditions-case-statement/

代替:

HAVING [A] > 100000 OR [B] < 1000

使用:

ALTER TABLE [FOO]
ADD IsFiltered AS CASE WHEN [A] > 100000 OR [B] < 1000 THEN 1 ELSE 0 END PERSISTED

然后将[IsFiltered]添加到索引中以获得额外的速度。您还可以创建函数来为您执行计算:

formula for computed column based on different table's column

或者,可能是时候咬住子弹并在SSAS多维数据集中创建这些计算。这可能是一个巨大的飞跃,但多维数据集可以提供大量的数据洞察力。

© www.soinside.com 2019 - 2024. All rights reserved.