最近萬年議題又被拿出來討論了,「該把程式碼寫在 Stored Procedure,還是寫在 Application 裡面?」
⠀
以下是個人的看法以及選擇,僅供參考。
⠀
我個人的背景是這樣的,都是以開發 Web 應用程式為主,資料庫的使用經驗都在 SQL Server,其他的資料庫領域我不了解,在這樣的背景之下我個人傾向不使用 Stored Procedure 的,原因如下:
⠀
1. 對 DB 的操作已經是在應用程式生命週期的末端,這時候關注的應該是「效能」,如何運用最少的資源(CPU、Memory、Network IO、Disk IO、Money...)最快的速度拿到想要取得的資料,如果把程式碼都寫在 Stored Procedure,為了效能這件事,就會開始在商業邏輯中混入一些 Temp Table、額外定義 Table Type、因效能而使用的特殊語法...等,隨著時間流逝這個 Stored Procedure 就慢慢變成了哥吉拉。
⠀
2. 由於 SQL Server 的改進,Stored Procedure precompiled 的優點早已消失。
(https://www.codeproject.com/Articles/414272/Stored-Procedures-DO-NOT-increase-performance)
⠀
3. 被 Parameter Sniffing 搞得很煩。
⠀
4. 身為那條龍,我為何要將原始碼放在兩個地方?
⠀
雖然我不想使用 Stored Procedure 但不表示可以忽視查詢效能這件事,基本對 Index 的了解、各種 JOIN 差異、查詢計劃的解讀、...等,會影響查詢效能的要略懂,也順便跟還在跟哥吉拉奮戰的朋友說聲辛苦了。
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「sql temp table效能」的推薦目錄:
- 關於sql temp table效能 在 軟體廚房 Facebook 的最佳解答
- 關於sql temp table效能 在 コバにゃんチャンネル Youtube 的最佳貼文
- 關於sql temp table效能 在 大象中醫 Youtube 的最佳貼文
- 關於sql temp table效能 在 大象中醫 Youtube 的最讚貼文
- 關於sql temp table效能 在 [SQL ] TEMP TABLE效能問題- 看板Database - 批踢踢實業坊 的評價
- 關於sql temp table效能 在 sql效能survey | 記事本 的評價
- 關於sql temp table效能 在 我不了解,在這樣的背景之下我個 - Facebook 的評價
- 關於sql temp table效能 在 [SQL ] TEMP TABLE效能問題- Database - PTT Web 的評價
- 關於sql temp table效能 在 stored procedure效能-推薦/討論/評價在PTT、Dcard、IG整理 ... 的評價
- 關於sql temp table效能 在 stored procedure效能-推薦/討論/評價在PTT、Dcard、IG整理 ... 的評價
- 關於sql temp table效能 在 [講座] 初訪SQL Server 2019 · Issue #21 · jimliu7434/Diary 的評價
sql temp table效能 在 コバにゃんチャンネル Youtube 的最佳貼文
sql temp table效能 在 大象中醫 Youtube 的最佳貼文
sql temp table效能 在 大象中醫 Youtube 的最讚貼文
sql temp table效能 在 sql效能survey | 記事本 的推薦與評價
用index過的所有column(也只有被index過的)去select; 如果需要反覆存取的資料上index與放到temp table; 壓低要做操作的資料量 ... ... <看更多>
sql temp table效能 在 我不了解,在這樣的背景之下我個 - Facebook 的推薦與評價
由於SQL Server 的改進,Stored Procedure precompiled 的優點早已消失。 ... 效能這件事,就會開始在商業邏輯中混入一些Temp Table、額外定義Table ... ... <看更多>
sql temp table效能 在 [SQL ] TEMP TABLE效能問題- 看板Database - 批踢踢實業坊 的推薦與評價
資料庫名稱: SQL Server 2008
資料庫版本: standard ver in hyper-V
內容/問題描述:
各位前輩好,小弟最近碰到一個狀況,
公司某台Sql Server,常碰到有些語法忽快忽慢
所謂快是1分內,慢能慢到30分鐘那種,同樣SQL參數條件都一樣
查詢當下執行中BATCH,都是INSERT #TEMPTABLE 類的語法
常態執行都不會這樣的,於是自己做了以下調整試圖解決
1.懷疑INSERT #TB 前的SELECT效能差->TUNNING SQL ->直接查已經快到不能再快了
2.統計值更新->更新後當下可能會變快,但有時又無效
3.procedure執行時多加參數 with recompile
4.檢查temp db當下空間使用率很充足,實體DISK IO也很低
作了以上調整都未見改善,狀況時好時壞,從前端AP到SQL AGENT都有類似的情況
餵狗餵了好久都未能找到相似的解答,不知各位前輩有沒有碰過這樣的情形
感謝各位給點還能除錯的方向~~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.206.245
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1466202870.A.204.html
... <看更多>