一、存儲過程都有什么替代方案
使用集算器 SPL可以替代存儲過程,實現“庫外存儲過程”。
集算器 SPL 是一款專業的開源數據計算引擎,提供不依賴數據庫的計算能力,數據庫更換不需要更改 SPL 計算腳本,解決存儲過程的移植性問題;簡潔易用的 IDE 環境編輯調試功能齊全,算法實現更加簡單;SPL 體系更加開放,可以直接使用多樣數據源計算;“外置存儲過程”不依賴數據庫,可隨應用存放解決耦合性問題;借助文件系統的樹狀結構進一步解決管理問題;SPL 獨立數據庫運行,更不會帶來安全問題。
SPL 在庫外實現存儲過程,不再依賴數據庫,這樣原來綁定數據庫帶來的各種問題也就解決了。
SPL 獨立于數據庫運行,解除應用與數據庫的耦合性。計算腳本隨應用(模塊)存儲在文件系統中,應用(模塊)間不共用腳本文件,降低應用間耦合性。
SPL 腳本在文件系統采用樹狀目錄管理,可以滿足原來數量眾多存儲過程的管理需要,提升可管理性。同時不再依賴數據庫,也不需要給應用程序員分配過高的數據庫權限,從而提升數據庫安全性。
SPL 實現的“庫外存儲過程”,借助 SPL 的獨立計算能力、過程計算、敏捷語法易開發、開放的多樣性數據源支持等特性可以實現對原有數據庫存儲過程的很好替代,對原有不支持存儲過程的數據庫也是很好地補充。
延伸閱讀:
二、存儲過程的缺點
移植性差
移植性是指存儲過程能否從原有數據庫方便移植到到另一類數據庫上。存儲過程缺乏讓存儲過程語法變得很不通用,很難移植且成本高昂。
編輯調試困難
存儲過程在數據庫內實現,缺少有效的 IDE 環境,直到今天存儲過程難以編寫調試的問題仍然沒有解決。
體系過于封閉
存儲過程在數據庫內運行只能計算數據庫內數據,無法滿足多樣性數據源的需求。如果要計算外部數據,需要先 ETL 到庫內完成,不僅浪費時間,也無法保證數據實時性,同時占用非常寶貴的數據庫空間。
耦合性高
存儲過程通常是為前端應用服務的,但卻存儲在數據庫中,物理分離,維護時需要兼顧兩處造成應用與數據庫的緊耦合。同時,數據庫的線性結構導致存儲過程創建后可能被多個應用使用,又會造成應用間的緊耦合。