主頁 > 知識庫 > 存儲過程優(yōu)缺點分析

存儲過程優(yōu)缺點分析

熱門標(biāo)簽:Linux服務(wù)器 百度競價排名 呼叫中心市場需求 地方門戶網(wǎng)站 AI電銷 網(wǎng)站排名優(yōu)化 鐵路電話系統(tǒng) 服務(wù)外包

存儲過程的優(yōu)缺點:

存儲過程優(yōu)點:
1.由于應(yīng)用程序隨著時間推移會不斷更改,增刪功能,T-SQL過程代碼會變得更復(fù)雜,StoredProcedure為封裝此代碼提供了一個替換位置。

2.執(zhí)行計劃(存儲過程在首次運行時將被編譯,這將產(chǎn)生一個執(zhí)行計劃-- 實際上是 Microsoft SQL Server為在存儲過程中獲取由 T-SQL 指定的結(jié)果而必須采取的步驟的記錄。)緩存改善性能。
但sql server新版本,執(zhí)行計劃已針對所有 T-SQL 批處理進行了緩存,而不管它們是否在存儲過程中,所以沒比較優(yōu)勢了。

3.存儲過程可以用于降低網(wǎng)絡(luò)流量,存儲過程代碼直接存儲于數(shù)據(jù)庫中,所以不會產(chǎn)生大量T-sql語句的代碼流量。

4.使用存儲過程使您能夠增強對執(zhí)行計劃的重復(fù)使用,由此可以通過使用遠(yuǎn)程過程調(diào)用 (RPC) 處理服務(wù)器上的存儲過程而提高性能。RPC 封裝參數(shù)和調(diào)用服務(wù)器端過程的方式使引擎能夠輕松地找到匹配的執(zhí)行計劃,并只需插入更新的參數(shù)值。

5.可維護性高,更新存儲過程通常比更改、測試以及重新部署程序集需要較少的時間和精力。

6.代碼精簡一致,一個存儲過程可以用于應(yīng)用程序代碼的不同位置。

7.更好的版本控制,通過使用 Microsoft Visual SourceSafe 或某個其他源代碼控制工具,您可以輕松地恢復(fù)到或引用舊版本的存儲過程。

8.增強安全性:
a、通過向用戶授予對存儲過程(而不是基于表)的訪問權(quán)限,它們可以提供對特定數(shù)據(jù)的訪問;
b、提高代碼安全,防止 SQL注入(但未徹底解決,例如,將數(shù)據(jù)操作語言--DML,附加到輸入?yún)?shù));
c、SqlParameter 類指定存儲過程參數(shù)的數(shù)據(jù)類型,作為深層次防御性策略的一部分,可以驗證用戶提供的值類型(但也不是萬無一失,還是應(yīng)該傳遞至數(shù)據(jù)庫前得到附加驗證)。

存儲過程缺點:

1.如果更改范圍大到需要對輸入存儲過程的參數(shù)進行更改,或者要更改由其返回的數(shù)據(jù),則您仍需要更新程序集中的代碼以添加參數(shù)、更新 GetValue() 調(diào)用,等等,這時候估計比較繁瑣了。

2.可移植性差

由于存儲過程將應(yīng)用程序綁定到 SQL Server,因此使用存儲過程封裝業(yè)務(wù)邏輯將限制應(yīng)用程序的可移植性。如果應(yīng)用程序的可移植性在您的環(huán)境中非常重要,則將業(yè)務(wù)邏輯封裝在不特定于 RDBMS 的中間層中可能是一個更佳的選擇。

3. 大量采用存儲過程進行業(yè)務(wù)邏輯的開發(fā)致命的缺點是很多存儲過程不支持面向?qū)ο蟮脑O(shè)計,無法采用面向?qū)ο蟮姆绞綄I(yè)務(wù)邏輯進行封裝,從而無法形成通用的可支持復(fù)用的業(yè)務(wù)邏輯框架。

4.代碼可讀性差,相當(dāng)難維護.

標(biāo)簽:崇左 湖南 銅川 蘭州 湘潭 黃山 仙桃 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《存儲過程優(yōu)缺點分析》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266