什麼是 Store Procedure? 為什麼我們要學 Store Procedure? 為什麼大部分時候其實你並不會需要用到它?
在介紹技術前,讓我們想想一個情境:今天小明操作的是一個物料系統,工廠的料是很大量的,可能是幾百萬筆,畢竟市場千變萬化,料如果不千變萬化怎麼能夠應付這些需求呢?
如果小明在做資料處理時,是將這幾百萬筆料拋回後端做,小明的後端可能會炸裂~ 畢竟,資料庫與 API 程式本來就是在不同機器,如果這時又需要透過網路溝通,網路時間肯定會宇宙之久,就算沒有炸裂,我猜小明的用戶也已經 call 來客訴~ 悲劇
為了解決這樣的效能問題,可以寫一組 SQL 腳本,將相關的工作集中在一起,我們可以在一次執行多個指令,並在其中實現流程控制。
那為什麼實務上會偏好在應用端建立連線寫 SQL?盡量不要寫 SP,可以寫在應用程式的排程裡。因為 SP 並不好維護,很容易改到大家一起壞掉,通常壞掉事情又很大條。SP 要測試也會比較麻煩。
另外,為了維護,請一定要將你的 SP 納入 Git 版控,如果出事了,至少我們還退的回上一版。
總之,在某些情境下,SP 真的是一個很棒的工具呢~
參考教材:Udemy SQL Server Programming and Stored Procedures Fundamentals
這是一門很簡短的課程,不會讓你感到太長,快速的將你會用到的 SP 知識點過了一遍。如果你所追求的是有更多的應用場景在這門課中,他完全不適合你。
但,因為工作中會接觸 SP,我反而覺得有一個能夠快速帶你學習 SP 的知識點,並給予一些簡單的實作小例子,對我而言很有幫助。很快地腦中有了基礎。
連結為我跟課的學習筆記,因為都是偏向語法學習,這邊就沒有想要再額外詳細說明,可能之後過了兩個月後,對 SP 這些的應用有更多想法會再額外補充,語法之外的東東。