存儲過程的優缺點


優點

1.運行速度快:一旦執行,在內存中就會保留一份這個存儲過程,下次再執行同樣的存儲過程時,從內存中直接調用,所以執行速度會比普通sql快。

2.減少網絡傳輸直接就在數據庫服務器上跑,不需要傳輸數據到其它服務器,所以會減少一定的網絡傳輸。但是如果在存儲過程中沒有多次數據交互,那么實際上網絡傳輸量和直接sql是一樣的。而且我們的應用服務器通常與數據庫是在同一內網,大數據的訪問的瓶頸會是硬盤的速度,而不是網速

3.可維護性有時候比程序更容易維護,這是因為可以實時更新DB端的存儲過程。  有些bug,直接改存儲過程里的業務邏輯,就搞定了。 

增強安全性:提高代碼安全,防止 SQL注入。這一點sql語句也可以做到。

4.可擴展性應用程序和數據庫操作分開,獨立進行,而不是相互在一起。方便以后的擴展和DBA維護優化。

缺點

1.SQL本身是一種結構化查詢語言,本質上還是過程化的,面對復雜的業務邏輯,過程化的處理會很吃力。這一點算致命傷。

2.不便於調試。基本上沒有較好的調試器,很多時候是用print來調試,但用這種方法調試長達數百行的存儲過程簡直是噩夢。

3.沒辦法應用緩存。雖然有全局臨時表之類的方法可以做緩存,但同樣加重了數據庫的負擔。如果緩存並發嚴重,經常要加鎖,那效率實在堪憂。

4.無法適應數據庫的切割(水平或垂直切割)。數據庫切割之后,存儲過程並不清楚數據存儲在哪個數據庫中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM