SQL Server - group by的索引效率

时间:2014-05-19 12:36:01

标签: sql sql-server-2008 indexing

尝试制作对此设置最有效的索引:

;WITH CTE AS      
(      
    SELECT 
       CHINFO.CHILDID, CHINFO.CONSUMERID,       
       DATEADD(DD, -(DATEPART(DW, CHINFO.Adddate)-1), CHINFO.Adddate) AS APPLICATIONUSAGESTARTDATE,      
       DATEDIFF(WW,CHINFO.Adddate,@now) AS WEEKNUMBER,      
       ROW_NUMBER() OVER (PARTITION BY CHINFO.CHILDID ORDER BY CHINFO.Adddate ASC) AS RN      
   FROM 
      BKA.CHILDINFORMATION CHINFO       
   LEFT OUTER JOIN  
      BKA.CHILDEVENTS CHE ON CHE.CHILDID = CHINFO.CHILDID
   GROUP BY 
      CHINFO.CHILDID, CHINFO.CONSUMERID, CHINFO.Adddate      
) 
SELECT  
   CONSUMERID,      
   CTE.CHILDID,      
   (SELECT COUNT(1) FROM BKA.CHILDEVENTS WHERE TYPE ='POTTYBREAK') AS AGGREGATEDPOTTYBREAKEVENTS,      
   APPLICATIONUSAGESTARTDATE,      
   WEEKNUMBER
FROM 
   CTE  

我尝试添加像

这样的索引
CREATE NONCLUSTERED INDEX IX_ChildInformation_CHILDID_CONSUMERID_Adddate
    ON BKA.ChildInformation (CHILDID,CONSUMERID,AddDate);

在执行计划中,我看到了聚集索引扫描。如何将其作为索引寻求?有什么建议吗?

0 个答案:

没有答案