我正在SSRS 2012中運行一個非常基本的報告。我只是從表中檢索一些數據,並且在查詢的Where子句中使用了一個參數。如果我在SSRS查詢中對參數進行硬編碼,查詢運行速度很快(不到5秒),但如果將其保留爲動態選擇的參數,查詢將花費5分鐘以上進行呈現。下面是類似我在用抽象查詢:SSRS報告運行速度非常慢,而查詢在SSMS中運行速度非常快
Select Col1, Count(*)
From Tbl1
Where Col2 = @Para1
Group By Col1
OPTION (RECOMPILE);
使用的查詢選項(重新編譯)來解決參數嗅探問題,我已經嘗試過。我還檢查了數據類型,Col2是CHAR(2),Para1是TEXT,所以在運行時不需要轉換。
有什麼想法可能導致這種情況?
嘗試用參數,沒有它運行在SQL管理工作室查詢(硬編碼)。看看執行計劃是否不同。 – Neolisk
您可以使用COUNT(1),它可以避免處理COUNT(*)中的所有列。相同的輸出。 – criticalfix
嘗試使用'存儲過程'而不是'ad-hoc'查詢 – praveen