1
從Sql server 2005升級到2008 R2後,我看到奇怪的行爲。 在升級下面的查詢在亞秒內運行但現在升級後10秒。兩張表都有數百萬行。查詢在從Sql Server 2005升級到Sql Server 2008 R2後運行緩慢
模型表中有可空列COLB的索引。下面的查詢顯然是做索引掃描,因爲是標量函數ISNULL被用於加入條款..
select distinct a.colA
from ptransaction a
inner join model b on ISNULL(b.colB,0) = a.colB
where a.transid = 234
我沒有任何升級前的規劃信息,但此查詢永遠跑了1秒以上..所以不確定是否在Sql server 2008中的優化器行爲發生了變化,導致它運行緩慢。
我知道備用解決方案,但不想立即修改架構..我知道我可以在模型中將colB轉換爲notnull來解決此問題。其他解決方案是創建索引計算列,這將解決此問題。我們的env中的模式更改並不容易,所以想要探索Sql guru的這裏是否有一些想法或其他解決方案不需要模式更改。 我還不能理解優化器或整體sql server升級如何使這個查詢變得更糟。 任何幫助表示讚賞。
NJ
Nah..Still做索引掃描並同樣performance..I通過移除並行,但沒有顯著獲得一些提振..猜測繼續尋求改善.. – user1679411