[英]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.