什麼是儲存過程,儲存過程的作用及好處
儲存過程(stored procedure)是一組為了完成特定功能的sql 語句集,經編譯後儲存在資料庫。中使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。
儲存過程是sql 語句和可選控制流語句的預編譯集合,以乙個名稱儲存並作為乙個單元處理。儲存過程儲存在資料庫內,可由應用程式通過乙個呼叫執行,而且允許使用者宣告變數、有條件執行以及其它強大的程式設計功能。儲存過程在建立時即在伺服器上進行編譯,所以執行起來比單個sql語句快。
儲存過程的優點:
1.儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,而一般sql語句每執行一次就編譯一次,所以使用儲存過程可提高資料庫執行速度。
2.當對資料庫進行複雜操作時(如對多個表進行update,insert,query,delete時),可將此複雜操作用儲存過程封裝起來與資料庫提供的事務處理結合一起使用。
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,因此使用儲存過程封裝業務邏輯將限制應用程式的可移植性。如果應用程式的可移植性在您的環境中非常重要,則將業務邏輯封裝在不特定於 rdbms 的中間層中可能是乙個更佳的選擇。
資料庫 儲存過程
儲存過程,stored procedure,是在大型資料庫系統中,一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。模擬於c中的函式。mysql與sqlserver是不同的。建立儲存過程 conn getconnec...
資料庫 儲存過程
在資料庫中,儲存過程屬於一種物件,是一種高效的安全的訪問資料庫的方法。下邊我們就資料庫中的儲存過程總結它的相關知識點。我們分為概述,實現和管理三個方面來總結。一,儲存過程的概述 1,概念 儲存過程 storedprocedure 是在資料庫伺服器端執行的一組t sql語句的集合,經編譯後存放在資料庫...
資料庫 儲存過程
一組為了完成特定功能的sql 語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數 如果有引數 來執行它。系統儲存過程 以sp 開頭,用來進行系統的各項設定.取得資訊.相關管理工作。本地儲存過程 使用者建立的儲存過程是由使用者建立並完成某一特定功能的儲存過程,這跟各種程式語言裡使用...