存儲過程的用途
『壹』 oracle中的存儲過程,有什麼作用,以及怎麼在代碼中使用
定義:存儲過程(Stored Procere )是一組為了完成特定功能的sql 語句
集,經編譯後存儲在資料庫中。用戶通過指定存儲過程的名字並給出參數
(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要
對象,任何一個設計良好的資料庫應用程序都應該用到存儲過程。
存儲過程是由流控制和SQL 語句書寫的過程,這個過程經編譯和優化後
存儲在資料庫伺服器中,應用程序使用時只要調用即可。在ORACLE 中,
若干個有聯系的過程可以組合在一起構成程序包。
優點:存儲過程只在創造時進行編譯,以後每次執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高資料庫執行速度。
2.當對資料庫進行復雜操作時(如對多個表進行Update、Insert、Query、Delete時),可將此復雜操作用存儲過程封裝起來與資料庫提供的事務處理結合一起使用。
3.存儲過程可以重復使用,可減少資料庫開發人員的工作量。
4.安全性高,可設定只有某用戶才具有對指定存儲過程的使用權。
proc = connection.prepareCall("{ call SIM_MEDICARE.P_Isinblacklist(?,?,?,?,?) }");
proc.setString(1, 「」);設置傳入參數
proc.registerOutParameter(4, Types.VARCHAR);注冊傳出參數
proc.execute();執行過程
proc.getString(4)獲取結果
『貳』 存儲過程作用是什麼,優缺點以及適用范圍是什麼
中用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是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,因此使用存儲過程封裝業務邏輯將限制應用程序的可移植性。
『叄』 oracle的存儲過程的作用
1.存儲過程可以使得程序執行效率更高、安全性更好,因為過程建立之後 已經編譯並且儲存到資料庫,直接寫sql就需要先分析再執行因此過程效率更高,直接寫sql語句會帶來安全性問題,如:sql注入
2.建立過程不會很耗系統資源,因為過程只是在調用才執行。
3.存儲過程可以用於降低網路流量,存儲過程代碼直接存儲於資料庫中,所以不會產生大量T-sql語句的代碼流量。
4.使用存儲過程使您能夠增強對執行計劃的重復使用,由此可以通過使用遠程過程調用 (RPC) 處理伺服器上的存儲過程而提高性能。RPC 封裝參數和調用伺服器端過程的方式使引擎能夠輕松地找到匹配的執行計劃,並只需插入更新的參數值。
5.可維護性高,更新存儲過程通常比更改、測試以及重新部署程序集需要較少的時間和精力。
6.代碼精簡一致,一個存儲過程可以用於應用程序代碼的不同位置。
7.增強安全性:
a、通過向用戶授予對存儲過程(而不是基於表)的訪問許可權,它們可以提供對特定數據的訪問;
b、提高代碼安全,防止 SQL注入(但未徹底解決,例如,將數據操作語言--DML,附加到輸入參數);
c、SqlParameter 類指定存儲過程參數的數據類型,作為深層次防禦性策略的一部分,可以驗證用戶提供的值類型(但也不是萬無一失,還是應該傳遞至資料庫前得到附加驗證)。
缺點就是:
1、大量的利用過程,會對伺服器壓力比較大。
『肆』 什麼是存儲過程,存儲過程作用是什麼
儲過程是一組予編譯的SQL語句
它的優點:1.允許模塊化程序設計,就是說只需要創建一次過程,以後在程序中就可以調用該過程任意次。
2.允許更快執行,如果某操作需要執行大量SQL語句或重復執行,存儲過程比SQL語句執行的要快。
3.減少網路流量,例如一個需要數百行的SQL代碼的操作有一條執行語句完成,不需要在網路中發送數百行代碼。
4.更好的安全機制,對於沒有許可權執行存儲過程的用戶,也可授權他們執行存儲過程。
『伍』 oracle中的存儲過程有什麼作用
定義:存儲過程(Stored Procere )是一組為了完成特定功能的SQL 語句
集,經編譯後存儲在資料庫中。用戶通過指定存儲過程的名字並給出參數
(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要
對象,任何一個設計良好的資料庫應用程序都應該用到存儲過程。
存儲過程是由流控制和SQL 語句書寫的過程,這個過程經編譯和優化後
存儲在資料庫伺服器中,應用程序使用時只要調用即可。在ORACLE 中,
若干個有聯系的過程可以組合在一起構成程序包。
優點:存儲過程只在創造時進行編譯,以後每次執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高資料庫執行速度。
2.當對資料庫進行復雜操作時(如對多個表進行Update、Insert、Query、Delete時),可將此復雜操作用存儲過程封裝起來與資料庫提供的事務處理結合一起使用。
3.存儲過程可以重復使用,可減少資料庫開發人員的工作量。
4.安全性高,可設定只有某用戶才具有對指定存儲過程的使用權。
你還是給我點分啥,寫得我手都酸痛了。
『陸』 存儲過程在資料庫中的作用是什麼
第一:存儲過程因為SQL語句已經預編繹過了,因此運行的速度比較快。
第二:存儲過程可接受參數、輸出參數、返回單個或多個結果集及返回值。向程序返回錯誤原因。
第三:存儲過程運行比較穩定,不會有太多的錯誤。只要一次成功,以後都會按這個程序運行。
第四:存儲過程主要是在伺服器上運行,減少對客戶機的壓力。
第五:存儲過程可以包含程序流、邏輯以及對資料庫的查詢。同時可以實體封裝和隱藏數據邏輯。
第六:存儲過程可以在單個存儲過程中執行一系列SQL語句。
第七:存儲過程可以從自己的存儲過程內引用其它存儲過程,這可以簡化一系列復雜語句。
(6)存儲過程的用途擴展閱讀:
存儲過程的優點:
1、存儲過程的能力大大增強了SQL語言的功能和靈活性。
2、可保證數據的安全性和完整性。
3、通過存儲過程可以使沒有許可權的用戶在控制之下間接地存取資料庫,從而保證數據的安全。
4、通過存儲過程可以使相關的動作在一起發生,從而可以維護資料庫的完整性。
5、在運行存儲過程前,資料庫已對其進行了語法和句法分析,並給出了優化執行方案。這種已經編譯好的過程可極大地改善SQL語句的性能。
6、可以降低網路的通信量。
7、使體現企業規則的運算程序放入資料庫伺服器中,以便集中控制。
『柒』 資料庫中存儲過程有什麼作用
第一:存儲過程因為SQL語句已經預編繹過了,因此運行的速度比較快。
第二:存儲過程可以接受參數、輸出參數、返回單個或多個結果集以及返回值。可以向程序返回錯誤原因。
第三:存儲過程運行比較穩定,不會有太多的錯誤。只要一次成功,以後都會按這個程序運行。
第四:存儲過程主要是在伺服器上運行,減少對客戶機的壓力。
第五:存儲過程可以包含程序流、邏輯以及對資料庫的查詢。同時可以實體封裝和隱藏了數據邏輯。
第六:存儲過程可以在單個存儲過程中執行一系列 SQL 語句。
第七:存儲過程可以從自己的存儲過程內引用其它存儲過程,這可以簡化一系列復雜語句。
其實存儲過程還可以控制許可權,比如一個表不直接允許用戶直接訪問,但要求允許用戶訪問和修改其中一個或多個欄位,那就可以通過一個存儲過程來實現並允許該用戶使用該存儲過程。
還有,如果多條SQL語句執行過程中,過程環節返回了數據作為後面環節的輸入數據,如果直接通過SQL語句執行,勢必導致大量的數據通過網路返回到客戶機,並在客戶機運算;如果封裝在存儲過程中,則將運算放在伺服器進行,不但減少了客戶機的壓力,同時也減少了網路流量,提高了執行的效率。
『捌』 SQL中存儲過程是干什麼用的
存儲過程是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集,它存儲在資料庫中,一次編譯後永久有效,用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要對象。
資料庫存儲過程的實質就是部署在資料庫端的一組定義代碼以及SQL。將常用的或很復雜的工作,預先用SQL語句寫好並用一個指定的名稱存儲起來,那麼以後要叫資料庫提供與已定義好的存儲過程的功能相同的服務時,只需調用execute,即可自動完成命令。
每個參數名前要有一個「@」符號,每一個存儲過程的參數僅為該程序內部使用,參數的類型除了IMAGE外,其他SQL Server所支持的數據類型都可使用。
(8)存儲過程的用途擴展閱讀:
SQL中存儲過程優點:
1、重復使用。存儲過程可以重復使用,從而可以減少資料庫開發人員的工作量。
2、減少網路流量。存儲過程位於伺服器上,調用的時候只需要傳遞存儲過程的名稱以及參數就可以了,因此降低了網路傳輸的數據量。
3、安全性。參數化的存儲過程可以防止SQL注入式攻擊,而且可以將Grant、Deny以及Revoke許可權應用於存儲過程。
4、存儲過程只在創造時進行編譯,以後每次執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高資料庫執行速度。