阿慶的狗窩

關於部落格
- 一起墮落吧
  • 69800

    累積人氣

  • 0

    今日人氣

    0

    訂閱人氣

[Memo]SQL Server跑SP比直接執行慢的解

 
快取一下結論,簡單來說就是因為SQL Server會重用執行計畫,所以當你"第一次"執行這個SP,並且查詢大量資料,SQL Server就會快取查詢大量資料的執行計畫,所以導致後面不管你查詢的資料量多或少,都會用這個執行計畫下去跑。所以導致查少少資料也是要跑這麼多資 料。

原因:[SQL SERVER][Memo]了解參數探測行為(1)

解法:[SQL SERVER][Memo]了解參數探測行為(2)

為避免原文失蹤而造成一些文明的遺失,這邊快取解法的tips:
1.執行 SP 並使用With Recompile
2.使用本機變數取代參數(建立通用查询的執行計畫) - 在sp裡面,另外declare一個變數去接傳入的參數
3.使用查詢提示(recompile)
4.使用查詢提示(OPTIMIZE FOR, OPTIMIZE FOR UNKNOWN )
相簿設定
標籤設定
相簿狀態