簡體   English   中英

在SQL查詢中進行內部聯接后,SSRS報告非常慢

[英]SSRS Report very slow after doing inner join in sql query

首先,我使用了沒有第二條select語句的查詢,肯定的是,如果我選擇了很長的一段時間,該報表的確很快,但是它在每個周末和節假日向我顯示。 那不是什么大問題,然后我在SSRS中使用篩選器選項排除了每個空閑日,之后該報告僅向我顯示了工作日,但是問題是,還有其他行的值為0,這影響了計算。

唯一的解決方案是添加第二條選擇語句“ Scheduled”。 在添加內部聯接之后,報告運行非常緩慢。 第二個Select語句是一個計划,它排除了所有周末和節假日,如果我運行它,它不會顯示任何多余的行。 但是最大的問題是,報告運行速度非常慢。 而且,如果我選擇六個月以上的時間,則會顯示“超時錯誤”。
查詢:

SELECT c.date, 
       c.team, 
       c.NAME, 
       c.prod, 
       c.product 
FROM   (SELECT intervaldate AS Date, 
               tsystem.NAME AS NAME, 
               productname  AS Product, 
               teamname     AS Team, 
               Sum(CASE 
                     WHEN countername = 'Prod' THEN displayunits 
                     ELSE 0 
                   END)     AS Prod 
        FROM   count 
               INNER JOIN tsystem 
                       ON count.systemid = tsystem.id 
        WHERE  intervaldate >= @StartDateTime 
               AND intervaldate <= @EndDateTime 
               AND tsystem.id IN (SELECT systemid 
                                  FROM   viewsystem 
                                  WHERE  viewid = 122) 
        GROUP  BY intervaldate, 
                  teamname, 
                  tsystem.NAME, 
                  productname) c 
       INNER JOIN (SELECT sh.scheduled AS Scheduled, 
                          sc.NAME      AS NAME 
                   FROM   history sh 
                          INNER JOIN schedule sc 
                                  ON ( sc.id = sh.scheduleid ) 
                   WHERE  scheduled != 0) p 
               ON p.NAME = c.NAME 

有沒有可能使其更快?

您需要將以下查詢(子查詢)的一部分替換為join

->和tsystem.ID(從ViewSystem中選擇SystemID,其中ViewID = 122)

->在tsystem.ID = ViewSystem.SystemID上的內部JOIN ViewSystem,其中ViewID = 122

聯接比子查詢更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM