首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法提高这个查询(聚合)的性能?

有没有办法提高这个查询(聚合)的性能?
EN

Stack Overflow用户
提问于 2019-08-22 02:18:34
回答 1查看 63关注 0票数 0

下面是查询:

代码语言:javascript
复制
SELECT  sdd.CompanyID 
            ,sdd.ClassID 
            ,sdd.PeriodID, SUM(sdd.Volume) AS VolumeTotal, SUM(sdd.Dollars) AS DollasTotal
            ,COUNT(LogID) as LogIDCount

    FROM (SELECT dp.CompanyID 
                ,ds.ClassID 
                ,fs.PeriodID, fs.LogID, sum(fs.Volume) AS Volume,sum(fs.Dollars) AS Dollars
    FROM DW.FactSupplyDataDetail fs     WITH (NOLOCK)
        JOIN DW.DimPLProvider dp    WITH (NOLOCK) 
            ON fs.PLProviderID = dp.PLProviderID
        JOIN DW.DimSupply ds    WITH (NOLOCK) 
            ON fs.SupplyID = ds.SupplyID
        WHERE fs.PeriodID between 201901 and 201907
        GROUP BY dp.CompanyID 
                ,ds.ClassID 
                ,fs.PeriodID,fs.LogID) sdd
    GROUP BY sdd.CompanyID 
            ,sdd.ClassID 
            ,sdd.PeriodID

以下是查询的执行计划:

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

代码语言:javascript
复制
DW.FactSupplyDataDetail has 10590237 records
DW.DimPLProvider has 5071 records
DW.DimSupply has 81001 records

result of a query is 1992094
EN

回答 1

Stack Overflow用户

发布于 2019-08-23 07:04:43

检查一下

  1. 表FactSupplyDataDetail的索引开始于PeriodID
  2. 表DimSupply的索引开始于SupplyID
  3. 表DimPLProvider的索引开始于PLProviderID

表的索引是从列开始的,这意味着您的索引(idx_xxx_)定义为:

CREATE INDEX idx_xxx on TABLE (列、其他列或空列表);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57597232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档