最近萬年議題又被拿出來討論了,「該把程式碼寫在 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 差異、查詢計劃的解讀、...等,會影響查詢效能的要略懂,也順便跟還在跟哥吉拉奮戰的朋友說聲辛苦了。
「sql stored procedure查詢」的推薦目錄:
- 關於sql stored procedure查詢 在 軟體廚房 Facebook 的最讚貼文
- 關於sql stored procedure查詢 在 SQL Server 預存程序(Stored Procedure)用法實例 的評價
- 關於sql stored procedure查詢 在 我不了解,在這樣的背景之下我個 - Facebook 的評價
- 關於sql stored procedure查詢 在 SQL - 查詢Stored Procedure 的中關鍵字 - gists · GitHub 的評價
- 關於sql stored procedure查詢 在 儲存過程中的動態SQL | 他山教程,只選擇最優質的自學材料 的評價
- 關於sql stored procedure查詢 在 How do I UPDATE from a SELECT in SQL Server? 的評價
- 關於sql stored procedure查詢 在 SQL injection in Postgres functions vs prepared queries 的評價
sql stored procedure查詢 在 我不了解,在這樣的背景之下我個 - Facebook 的推薦與評價
2. 由於SQL Server 的改進,Stored Procedure precompiled 的優點早已消失。 ... 3. 被Parameter Sniffing 搞得很煩。 ... 4. 身為那條龍,我為何要將原始碼放在兩個地方? ... <看更多>
sql stored procedure查詢 在 SQL - 查詢Stored Procedure 的中關鍵字 - gists · GitHub 的推薦與評價
SQL - 查詢Stored Procedure 的中關鍵字. GitHub Gist: instantly share code, notes, and snippets. ... <看更多>
sql stored procedure查詢 在 SQL Server 預存程序(Stored Procedure)用法實例 的推薦與評價
什麼是預存程序(Stored Procedure)?預存程序是SQL Server的一個功能,能夠先存下一段SQL的指令以便之後使用。有點類似於把一個函數存在一個變數裡, ... ... <看更多>