回覆列表
  • 1 # 使用者6031092464960

    優點:

    離資料最近,某些情況下可獲得更好效能減少應用複雜度及應用伺服器壓力需要顯式呼叫,不會像觸發器那樣出現問題難以定位使用方便缺點:增加資料庫伺服器壓力。相當於將應用壓力轉嫁到資料庫上,而應用伺服器更容易擴充套件,也就是說大部分情況下資料庫伺服器資源比應用伺服器資源更加珍貴。增加網路開銷。如儲存過程存取資料量較大,會造成較大網路開銷。可移植性差。如系統有多中資料庫,或從某種資料庫遷移到另一種資料庫,則很有可能遇到相容性問題。導致多處存在業務邏輯。儲存過程某種程度就是將本應放在應用側處理的業務邏輯放到資料庫處理,這會導致業務邏輯存在於多個地方,增加除錯維護困難。在高併發系統中很可能會導致資料庫壓力瞬間增大。儲存過程中的複雜運算會大量消耗資料庫伺服器資源。總結:一般情況下儘量少用或不用儲存過程,特別是在一個併發較高架構複雜的大型系統中,更是要減少儲存過程的使用,業務邏輯的工作就應該由應用伺服器處理,而不是交給資料庫。很多時候儲存過程確實可以快速解決問題,但它的維護性、擴充套件性、移植性等都不好。如果你的系統很小,架構比較簡單,並且開發人員對儲存過程熟悉,那麼可以考慮使用儲存過程減少工作量;但隨著系統增加,架構變複雜,開發人員越來越多,這時儲存過程的存在可能會導致更多的問題。當然,定時ETL或報表統計之類的任務,還是可以考慮使用儲存過程來做的。

  • 中秋節和大豐收的關聯?
  • 白酒行業的“二哥”五糧液,旗下有哪些酒是值得一嘗的?