背景
百度百科對存盤程序的定義
存盤程序(Stored Procedure)是在大型資料庫系統中,一組為了完成特定功能的SQL 陳述句集,它存盤在資料庫中,一次編譯后永久有效,用戶通過指定存盤程序的名字并給出引數(如果該存盤程序帶有引數)來執行它,存盤程序是資料庫中的一個重要物件,在資料量特別龐大的情況下利用存盤程序能達到倍速的效率提升;
爭論
那么關于開發當中是否使用存盤程序,一直以來都有很多爭論;
在《阿里巴巴java編碼規范》有這樣一條

互聯網人看法
關于這個,我個人在互聯網行業是贊同的;
首先,確實很難除錯,如果把大量的業務寫在存盤程序,那么除錯閱讀起來是
很痛苦的,試想一下,在幾百行的sql 里面 ,你要一個個去理解它的意思;
有時候,你需要逐行去驗證對錯;再者你要增加功能 ,只能在繼續往上面堆sql,最后造成惡性回圈;
至于移植,在不同的資料庫有些機制還是略有不同的,還是需要改sql;
所以在互聯網行業,一般是不提倡使用存盤程序的;
那么有人會問存盤程序執行效率高啊,確實如此,但是為了那么一點點性能
犧牲開發效率和維護性就得不償失;況且效率性能的重點根本不在那么一點點損耗;就像有人覺得原生的sql 效率高,拒絕orm 是一樣的;沒有注意到事情的本質;因噎廢食;
事有兩面性
當然,事情有兩面性,有些行業,比如傳統的管理類系統,由于需求變化大,
業務復雜,軟體產品化等客觀原因,存盤程序就不失一個好的辦法,比如erp實施;很多時候都是懂點sql 的實施人員去做,而不是開發人員再去搗鼓代碼,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/253747.html
標籤:.NET Core
