oracle的存儲(chǔ)過程優(yōu)點(diǎn)
1.存儲(chǔ)過程可以使得程序執(zhí)行效率更高爽柒、安全性更好如暖,因?yàn)檫^程建立之后 已經(jīng)編譯并且儲(chǔ)存到數(shù)據(jù)庫赔退,直接寫sql就需要先分析再執(zhí)行因此過程效率更高瘾英,直接寫sql語句會(huì)帶來安全性問題枣接,如:sql注入
2.建立過程不會(huì)很耗系統(tǒng)資源,因?yàn)檫^程只是在調(diào)用才執(zhí)行缺谴。
3.存儲(chǔ)過程可以用于降低網(wǎng)絡(luò)流量但惶,存儲(chǔ)過程代碼直接存儲(chǔ)于數(shù)據(jù)庫中,所以不會(huì)產(chǎn)生大量T-sql語句的代碼流量湿蛔。
4.使用存儲(chǔ)過程使您能夠增強(qiáng)對(duì)執(zhí)行計(jì)劃的重復(fù)使用膀曾,由此可以通過使用遠(yuǎn)程過程調(diào)用 (RPC) 處理服務(wù)器上的存儲(chǔ)過程而提高性能。RPC 封裝參數(shù)和調(diào)用服務(wù)器端過程的方式使引擎能夠輕松地找到匹配的執(zhí)行計(jì)劃阳啥,并只需插入更新的參數(shù)值添谊。
5.可維護(hù)性高,更新存儲(chǔ)過程通常比更改察迟、測(cè)試以及重新部署程序集需要較少的時(shí)間和精力碉钠。
6.代碼精簡(jiǎn)一致,一個(gè)存儲(chǔ)過程可以用于應(yīng)用程序代碼的不同位置卷拘。
7.增強(qiáng)安全性:
a、通過向用戶授予對(duì)存儲(chǔ)過程(而不是基于表)的訪問權(quán)限祝高,它們可以提供對(duì)特定數(shù)據(jù)的訪問栗弟;
b、提高代碼安全工闺,防止 SQL注入(但未徹底解決乍赫,例如,將數(shù)據(jù)操作語言--DML陆蟆,附加到輸入?yún)?shù))雷厂;
c、SqlParameter 類指定存儲(chǔ)過程參數(shù)的數(shù)據(jù)類型叠殷,作為深層次防御性策略的一部分改鲫,可以驗(yàn)證用戶提供的值類型(但也不是萬無一失,還是應(yīng)該傳遞至數(shù)據(jù)庫前得到附加驗(yàn)證)。
缺點(diǎn)就是:
1像棘、大量的利用過程稽亏,會(huì)對(duì)服務(wù)器壓力比較大。