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