我有一個非常噁心的存儲過程,幾個月前並不慢,但現在是。我幾乎不知道這件事是什麼,我也沒有興趣重寫它。Sql Server 2000存儲過程阻止並行或什麼?
我知道,如果我拿着存儲過程的主體,然後聲明/設置參數值並在查詢分析器中運行它,它運行速度提高了20倍以上。
從互聯網上,我讀到,這可能是由於一個不好的緩存查詢計劃。所以,我試過在EXEC之後用「WITH RECOMPILE」運行sp,並且我也嘗試過在內部放置「WITH RECOMPLE」,但這兩者都沒有幫助。
當我查看sp與查詢的執行計劃時,最大的區別是sp在整個地方都有「並行性」操作,查詢沒有任何操作。這可能是速度差異的原因嗎?
謝謝,任何想法都會很棒......我被卡住了。
我很難編碼我的參數。我在查詢分析器中字面上有以下內容。創建程序someProc(@a int)*** body *** go EXEC someProc 5 ------------------------------- - 聲明@a int set @ a = 5 *** body ***我突出了EXEC語句,它需要24秒。我強調了這個查詢,它需要1秒。 – 2010-03-19 14:25:17