當前位置:首頁 » 服務存儲 » 存儲過程作用
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

存儲過程作用

發布時間: 2022-01-17 05:39:13

A. 存儲過程作用是什麼,優缺點以及適用范圍是什麼

中用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是sql 語句和可選控制流語句的預編譯集合,以一個名稱存儲並作為一個單元處理。存儲過程存儲在資料庫內,可由應用程序通過一個調用執行,而且允許用戶聲明變數、有條件執行以及其它強大的編程功能。存儲過程在創建時即在伺服器上進行編譯,所以執行起來比單個SQL語句快。 存儲過程的優點: 1.存儲過程只在創造時進行編譯,以後每次執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高資料庫執行速度。 2.當對資料庫進行復雜操作時(如對多個表進行Update,Insert,Query,Delete時),可將此復雜操作用存儲過程封裝起來與資料庫提供的事務處理結合一起使用。 3.存儲過程可以重復使用,可減少資料庫開發人員的工作量 4.安全性高,可設定只有某此用戶才具有對指定存儲過程的使用權 缺點:1.如果更改范圍大到需要對輸入存儲過程的參數進行更改,或者要更改由其返回的數據,則您仍需要更新程序集中的代碼以添加參數、更新 GetValue() 調用,等等,這時候估計比較繁瑣了。
2.可移植性差
由於存儲過程將應用程序綁定到 SQL Server,因此使用存儲過程封裝業務邏輯將限制應用程序的可移植性。 優點: 1.由於應用程序隨著時間推移會不斷更改,增刪功能,T-SQL過程代碼會變得更復雜,StoredProcere為封裝此代碼提供了一個替換位置。 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,因此使用存儲過程封裝業務邏輯將限制應用程序的可移植性。

B. SQL存儲過程有什麼好處

優點:

  1. 離數據最近,某些情況下可獲得更好性能

  2. 減少應用復雜度及應用伺服器壓力

  3. 需要顯式調用,不會像觸發器那樣出現問題難以定位

  4. 使用方便

缺點:

  1. 增加資料庫伺服器壓力。相當於將應用壓力轉嫁到資料庫上,而應用伺服器更容易擴展,也就是說大部分情況下資料庫伺服器資源比應用伺服器資源更加珍貴。

  2. 增加網路開銷。如存儲過程存取數據量較大,會造成較大網路開銷。

  3. 可移植性差。如系統有多中資料庫,或從某種資料庫遷移到另一種資料庫,則很有可能遇到兼容性問題。

  4. 導致多處存在業務邏輯。存儲過程某種程度就是將本應放在應用側處理的業務邏輯放到資料庫處理,這會導致業務邏輯存在於多個地方,增加調試維護困難。

  5. 在高並發系統中很可能會導致資料庫壓力瞬間增大。

  6. 存儲過程中的復雜運算會大量消耗資料庫伺服器資源。

總結:

一般情況下盡量少用或不用存儲過程,特別是在一個並發較高架構復雜的大型系統中,更是要減少存儲過程的使用,業務邏輯的工作就應該由應用伺服器處理,而不是交給資料庫。很多時候存儲過程確實可以快速解決問題,但它的維護性、擴展性、移植性等都不好。如果你的系統很小,架構比較簡單,並且開發人員對存儲過程熟悉,那麼可以考慮使用存儲過程減少工作量;但隨著系統增加,架構變復雜,開發人員越來越多,這時存儲過程的存在可能會導致更多的問題。當然,定時ETL或報表統計之類的任務,還是可以考慮使用存儲過程來做的。

C. 存儲過程的作用是什麼

實現了模塊化編程。
存儲過程具有對資料庫立即訪問的功能。
使用存儲過程可以加快程序的運行速度。
使用存儲過程可以減少網路流量。
使用存儲過程可以提高資料庫的安全性。

D. sql建立存儲過程的作用是什麼

就是把一些數據處理和邏輯性的問題作為一段程序放到資料庫端來處理,這樣處理的可以提高效率,不用每次來處理都要編譯了,也提高了原子性,安全性和事務一致性。

E. oracle中的存儲過程,有什麼作用

定義:存儲過程(Stored Procere )是一組為了完成特定功能的SQL 語句
集,經編譯後存儲在資料庫中。用戶通過指定存儲過程的名字並給出參數
(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要
對象,任何一個設計良好的資料庫應用程序都應該用到存儲過程。
存儲過程是由流控制和SQL 語句書寫的過程,這個過程經編譯和優化後
存儲在資料庫伺服器中,應用程序使用時只要調用即可。在ORACLE 中,
若干個有聯系的過程可以組合在一起構成程序包。

優點:存儲過程只在創造時進行編譯,以後每次執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高資料庫執行速度。
2.當對資料庫進行復雜操作時(如對多個表進行Update、Insert、Query、Delete時),可將此復雜操作用存儲過程封裝起來與資料庫提供的事務處理結合一起使用。
3.存儲過程可以重復使用,可減少資料庫開發人員的工作量。
4.安全性高,可設定只有某用戶才具有對指定存儲過程的使用權。

你還是給我點分啥,寫得我手都酸痛了。

F. 什麼是存儲過程,存儲過程作用是什麼

儲過程是一組予編譯的SQL語句
它的優點:1.允許模塊化程序設計,就是說只需要創建一次過程,以後在程序中就可以調用該過程任意次。
2.允許更快執行,如果某操作需要執行大量SQL語句或重復執行,存儲過程比SQL語句執行的要快。
3.減少網路流量,例如一個需要數百行的SQL代碼的操作有一條執行語句完成,不需要在網路中發送數百行代碼。
4.更好的安全機制,對於沒有許可權執行存儲過程的用戶,也可授權他們執行存儲過程。

G. 資料庫中什麼是存儲過程作用是什麼

存儲過程在SQL中相當有方法或函數在程序中作用是一樣的,
你定義好後,直接調用 就可以了,如果需要的話,還要給它傳遞參數

H. oracle的存儲過程的作用

1.存儲過程可以使得程序執行效率更高、安全性更好,因為過程建立之後 已經編譯並且儲存到資料庫,直接寫sql就需要先分析再執行因此過程效率更高,直接寫sql語句會帶來安全性問題,如:sql注入
2.建立過程不會很耗系統資源,因為過程只是在調用才執行。
3.存儲過程可以用於降低網路流量,存儲過程代碼直接存儲於資料庫中,所以不會產生大量T-sql語句的代碼流量。

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

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

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

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

缺點就是:
1、大量的利用過程,會對伺服器壓力比較大。

I. 存儲過程在資料庫中的作用是什麼

第一:存儲過程因為SQL語句已經預編繹過了,因此運行的速度比較快。

第二:存儲過程可接受參數、輸出參數、返回單個或多個結果集及返回值。向程序返回錯誤原因。

第三:存儲過程運行比較穩定,不會有太多的錯誤。只要一次成功,以後都會按這個程序運行。

第四:存儲過程主要是在伺服器上運行,減少對客戶機的壓力。

第五:存儲過程可以包含程序流、邏輯以及對資料庫的查詢。同時可以實體封裝和隱藏數據邏輯。

第六:存儲過程可以在單個存儲過程中執行一系列SQL語句。

第七:存儲過程可以從自己的存儲過程內引用其它存儲過程,這可以簡化一系列復雜語句。

(9)存儲過程作用擴展閱讀:

存儲過程的優點:

1、存儲過程的能力大大增強了SQL語言的功能和靈活性。

2、可保證數據的安全性和完整性。

3、通過存儲過程可以使沒有許可權的用戶在控制之下間接地存取資料庫,從而保證數據的安全。

4、通過存儲過程可以使相關的動作在一起發生,從而可以維護資料庫的完整性。

5、在運行存儲過程前,資料庫已對其進行了語法和句法分析,並給出了優化執行方案。這種已經編譯好的過程可極大地改善SQL語句的性能。

6、可以降低網路的通信量。

7、使體現企業規則的運算程序放入資料庫伺服器中,以便集中控制。

J. 存儲過程的好處

存儲過程是保存起來的可以接受和返回用戶提供的參數的 Transact-SQL 語句的集合。可以創建一個過程供永久使用,或在一個會話中臨時使用(局部臨時過程),或在所有會話中臨時使用(全局臨時過程)。也可以創建在 Microsoft SQL Server啟動時自動運行的存儲過程。

語法
CREATE PROC [ EDURE ] procere_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,...n ]

[ WITH
{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]

[ FOR REPLICATION ]

AS sql_statement [ ...n ]

參數
procere_name