国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

存儲過程優缺點分析

2024-08-31 00:57:41
字體:
來源:轉載
供稿:網友

存儲過程的優缺點:

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

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

3.存儲過程可以用于降低網絡流量,存儲過程代碼直接存儲于數據庫中,所以不會產生大量T-sql語句的代碼流量。

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

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

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

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

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

存儲過程缺點:

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

2.可移植性差

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

3. 大量采用存儲過程進行業務邏輯的開發致命的缺點是很多存儲過程不支持面向對象的設計,無法采用面向對象的方式將業務邏輯進行封裝,從而無法形成通用的可支持復用的業務邏輯框架。

4.代碼可讀性差,相當難維護.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 拉萨市| 博客| 山西省| 遂宁市| 镇江市| 太康县| 舞钢市| 呼伦贝尔市| 平安县| 巴彦淖尔市| 莎车县| 田阳县| 荃湾区| 富蕴县| 恩平市| 江川县| 洛浦县| 乐东| 河曲县| 大兴区| 临海市| 海伦市| 藁城市| 长葛市| 永定县| 土默特右旗| 滨海县| 新乐市| 兴化市| 樟树市| 浪卡子县| 万荣县| 阜南县| 南宁市| 平山县| 文山县| 沅江市| 丹阳市| 卢湾区| 乐至县| 永年县|