當前位置:首頁 » 存儲配置 » oracle存儲過程優點

oracle存儲過程優點

發布時間: 2025-05-16 19:41:36

1. oracle存儲過程有什麼好處

你應該問資料庫存儲過程有什麼好處存儲過程的能力大大增強了sql語言的功能和靈活性。存儲過程可以用流控制語句編寫,有很強的靈活性,可以完成復雜的判斷和較復雜的 運算。x0dx0a* 可保證數據的安全性和完整性。x0dx0a# 通過存儲過程可以使沒有許可權的用戶在控制之下間接地存取資料庫,從而保證數據的安全。x0dx0a# 通過存儲過程可以使相關的動作在一起發生,從而可以維護資料庫的完整性。x0dx0a* 在運行存儲過程前,資料庫已對其進行了語法和句法分析,並給出了優化執行方案。這種已經編譯好的過程可極大地改善SQL語句的性能。由於執行SQL語句的大部分工作已經完成,所以存儲過程能以極快的速度執行。x0dx0a* 可以降低網路的通信量。x0dx0a* 使體現企業規則的運算程序放入資料庫伺服器中,以便:x0dx0a# 集中控制。x0dx0a# 當企業規則發生變化時在伺服器中改變存儲過程即可,無須修改任何應用程序。企業規則的特點是要經常變化,如果把體現企業規則的運算程序放入應用程序中,則當企業規則發生變化時,就需要修改應用程序工作量非常之大(修改、發行和安裝應用程序)。如果把體現企業規則的運算放入存儲過程中,則當企業規則發生變化時,只要修改存儲過程就可以了,應用程序無須任何變化。

2. 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)獲取結果

3. oracle的存儲過程的作用

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

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

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

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

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

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

4. oracle存儲過程有什麼好處

1。預編譯,已優化,效率較高。避免了SQL語句在網路中傳輸然後再解釋的低效率。
2。如果公司有專門的DBA,寫存儲過程可以他來做,程序員只要按他提供的介面調用就好了。這樣分開來做,比較清楚。
3。修改方便。嵌入在程序中的SQL語句修改比較麻煩,而且經常不能肯定該改的是不是都改了。SQLSERVER上的存儲過程修改就比較方便,直接改掉該存儲過程,調用它的程序基本不用動,除非改動比較大(如改了傳入的參數,返回的數據等)。
4。會安全一點。不會有SQL語句注入問題。
當然,也有缺點。特別是業務邏輯比較復雜時,全用存儲過程來寫,估計也累的夠嗆。
■SQL存儲過程執行起來比SQL命令文本快得多。當一個SQL語句包含在存儲過程中時,伺服器不必每次執行它時都要分析和編譯它。
■調用存儲過程,可以認為是一個三層結構。這使你的程序易於維護。如果程序需要做某些改動,你只要改動存儲過程即可
■你可以在存儲過程中利用Transact-SQL的強大功能。一個SQL存儲過程可以包含多個SQL語句。你可以使用變數和條件。這意味著你可以用存儲過程建立非常復雜的查詢,以非常復雜的方式更新資料庫。

5. 如何評價一個項目使用了大量的oracle存儲過程

強烈支持大量運用存儲過程,最好100%用。
效率高,用戶happy

  1. 存儲過程性能好
    2.存儲過程代碼可復用性好
    3.避免在程序中含有大量SQL,可移植性不好。

    這么多人在說用存儲過程的優點,那我就來說說缺點:
    1、移植性問題
    這個搞資料庫開發的人都能理解,是不是問題看系統的需求而定,這里就不多說了。如果資料庫要移植的話,用存儲過程就會帶來很多問題,最好不用。

    2、性能擴展性問題
    隨著系統訪問量的增長,系統必須進行不斷地升級擴展,特別對於大型系統而言,更重要的是性能可擴展性而不是局部的性能。J2EE等多層結構要解決的也是這方面的問題。
    處理邏輯如果全部放在存儲過程里,所有的處理都在資料庫伺服器上進行,消耗的就是資料庫伺服器的CPU資源,大家知道資料庫伺服器由於需要較高的可靠性,通常選用的都是價格昂貴的伺服器,對資料庫伺服器升級通常都花費很大。
    如果把處理邏輯放在中間層伺服器上進行,中間層伺服器一般都是小型的機器,價格便宜,而且中間層伺服器的CPU通常主頻比資料庫伺服器的速度還快(比如現在8CPU的資料庫伺服器主頻只有800M,而雙CPU的刀片式伺服器CPU主頻已經到2.8G了),而且對於多層架構,支持中間層伺服器可以增加多台機器進行負載均衡,用中間層伺服器即價格便宜,擴展空間也更大。

    3、開發問題
    存儲過程還是過程型語言,其重用性比不上JAVA等面向對象語言開發。用JAVA開發的中間層服務可服用性更好(當然,前提是你採用面向對象設計)


    上面只是列舉的一部分問題,這些問題就值的你好好考慮是否採用存儲過程了,我的觀點是存儲過程應該有選擇地使用,牽涉到批量數據操作的,用存儲過程較好。對於小數據量處理的事務操作,應放到中間層處理,這樣系統的移植性和擴展性更好

熱點內容
我的世界龍蛋伺服器 發布:2025-05-17 06:20:06 瀏覽:912
安卓系統軟體怎麼不更新 發布:2025-05-17 06:19:15 瀏覽:817
安卓夏日傳說存檔放哪個文件 發布:2025-05-17 06:12:44 瀏覽:606
如何通過伺服器id找到主人 發布:2025-05-17 06:12:11 瀏覽:37
ug編程吧 發布:2025-05-17 06:07:45 瀏覽:72
sql臨時表和表變數 發布:2025-05-17 06:02:38 瀏覽:724
蘋果如何用安卓無線耳機 發布:2025-05-17 06:01:53 瀏覽:822
sqlserver表關系 發布:2025-05-17 06:01:02 瀏覽:997
2017途觀配置什麼音響 發布:2025-05-17 05:53:50 瀏覽:844
64位安裝sql2000 發布:2025-05-17 05:33:17 瀏覽:846