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