1. 程式人生 > >你為什麽(不)用存儲過程?

你為什麽(不)用存儲過程?

標準 優點 sdn 設計 ans 移植 第一次 AD 數據量

存儲過程(Stored Procedure)是在大型數據庫系統中,一組為了完成特定功能的SQL 語句集,存儲在數據庫中,經過第一次編譯後再次調用不需要再次編譯,用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是數據庫中的一個重要對象。

結合工作和網上 查到的資料,列一下特點,看你是否需要存儲過程。

優點:

1、存儲過程允許標準組件式編程(模塊化設計),可重復使用,易於維護:創建時進行編譯,以後執行時不需要重新編譯;而且數據庫專業人員可隨時對存儲過程進行修改,但對應用程序源代碼毫無影響。因為應用程序源代碼只包含存儲過程的調用語句,從而極大地提高了程序的可移植性。導出SQL執行腳本時,可以導出存儲過程,包括函數。

2、存儲過程能夠實現快速的執行速度:

2、減少網絡流量。調用時,只要傳參存儲過程名稱和數就可以了,降低網絡數據量。

3、安全性。防止SQL註入,設定用戶使用權限。

缺點:

1、存儲過程能夠實現業務邏輯,這個是它的一個優點,但是會導致定位問題困難。自己就曾經苦惱於存儲過程的執行報錯,問題分析,一層一層剝離,或者加print,看執行到哪一步,定位問題。

2、違反面向對象規則,面對復雜的業務邏輯,過程化的處理會很吃力。大量使用加重了數據庫的負擔,因為SQL擅長的是數據查詢而並非業務邏輯處理。自己剛開始接觸存儲過程時就誤入了這樣的雷區,好多判斷,計算放到存儲過程中計算;導致數據庫操作執行速度慢。

相關網頁鏈接:sql存儲過程完全教程

存儲過程到底有什麽用

你為什麽(不)用存儲過程?