當前位置:成語大全網 - 書法字典 - 存儲過程的功能、優缺點和適用範圍是什麽?

存儲過程的功能、優缺點和適用範圍是什麽?

用戶通過指定存儲過程的名稱並給出參數(如果存儲過程有參數)來執行存儲過程。存儲過程是SQL語句和可選控制流語句的預編譯集合,它們存儲在壹個名稱下並被視為壹個單元。存儲過程存儲在數據庫中,可以由應用程序通過調用來執行,並允許用戶聲明變量、條件執行和其他強大的編程功能。存儲過程在創建時就在服務器上編譯,因此執行起來比單個SQL語句更快。存儲過程的優點:1。存儲過程只在創建時編譯,以後每次執行都不需要重新編譯,而普通SQL語句每次執行都要編譯,所以使用存儲過程可以提高數據庫的執行速度。2.在對數據庫執行復雜操作(如更新、插入、查詢和刪除多個表)時,可以將這種復雜操作與存儲過程打包在壹起,與數據庫提供的事務壹起使用。3.存儲過程可以重用,可以減少數據庫開發人員的工作量。4.安全性高,可以設置只有壹個用戶有權使用指定的存儲過程。缺點:1。如果更改範圍大到足以更改輸入存儲過程的參數或它們返回的數據,您仍然需要更新程序集中的代碼來添加參數、更新GetValue()調用等等。這時候估計就比較復雜了。

2.便攜性差

因為存儲過程將應用程序綁定到SQL Server,所以用存儲過程封裝業務邏輯會限制應用程序的可移植性。優點: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,使用存儲過程封裝業務邏輯會限制應用程序的可移植性。