gpt4 book ai didi

SQL Server 聚合非常大的表

转载 作者:行者123 更新时间:2023-12-03 00:18:37 25 4
gpt4 key购买 nike

我们有一个包含 1700 万行的表,其中包含产品属性,假设它们是:

品牌ID、尺码ID、颜色ID、价格、形状ID

我们需要按品牌和尺寸查询聚合。目前,我们通过执行以下操作来查询和过滤此数据:

select brandID, sizeID, count(*) 
from table where colorID in (1,2,3) and price=10 and shapeID=17
--"additional complex where clause here"
group by brandID, sizeID
order by brandID, sizeID

我们报告了这些数据。问题是,尽管返回的实际数据只有几百行,但运行此查询需要 10 秒左右(这是一个非常简单的示例)。

我认为我们已经达到了对该表建立索引的能力,因此我认为任何数量的索引都无法让我们获得近乎即时的结果。

我对 OLAP 或其他分析服务知之甚少,但是 SQL Server 有什么可以预过滤或预聚合此表以便可以执行上述查询(或类似的返回等效数据)的查询?或者处理非常大的表上的任意 where 子句的最佳方法是什么?

最佳答案

我认为这是 Olap 立方体的完美候选者。我有数百行的事实数据。我正在执行您上面描述的那种查询,查询会在几分钟内返回。我将其移至 OLAP 多维数据集中,查询现在几乎是即时的。 olap 有一点学习曲线。我强烈建议您找到一个有关一些简单的立方体构建的教程,以便您了解它。 DBA 同事多年来一直在告诉我有关多维数据集的信息,但我一直没有完全理解。现在我不知道为什么我这么长时间没有它。

除了 OLAP 之外,您可能还想研究索引 View ,但如果您以多种方式对数据进行切片,这可能不可行。

关于SQL Server 聚合非常大的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1511553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com