日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle存储过程procedure与函数function区别

發布時間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle存储过程procedure与函数function区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
定義:

存儲過程(Stored Procedure )是一組為了完成特定功能的SQL 語句集,經編譯后存儲在數據庫中。用戶通過指定存儲過程的名字并給出參數(如果該存儲過程

帶有參數)來執行它。

存儲過程是數據庫中的一個重要對象,任何一個設計良好的數據庫應用程序都應該用到存儲過程。

存儲過程是由流控制和SQL 語句書寫的過程,這個過程經編譯和優化后存儲在數據庫服務器中,應用程序使用時只要調用即可。

在Oracle?中,若干個有聯系的過程可以組合在一起構成程序包。


優 點:

1. 存儲過程只在創造時進行編譯,以后每次執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高數據庫執行速度。

2.當對數據庫進行復雜操作時(如對多個表進行Update、Insert、Query、Delete時),可將此復雜操作用存儲過程封裝起來與數據庫提供的事務處理結合一起使用。

3.存儲過程可以重復使用,可減少數據庫開發人員的工作量。

4.安全性高,可設定只有某用戶才具有對指定存儲過程的使用權。


存儲過程與函數的對比


存儲過程的優缺點

優點:減少網絡交互的成本。
缺點:
a、不可移植性,每種數據庫的內部編程語法都不太相同,當你的系統需要兼容多種數據庫時,最好不要用存儲過程。
b、學習成本高,DBA一般都擅長寫存儲過程,但并不是每個程序員都能寫好存儲過程,除非你的團隊有較多的開發人員熟悉寫存儲過程,否則后期系統維護會產生問題。
c、業務邏輯多處存在,采用存儲過程后也就意味著你的系統有一些業務邏輯不是在應用程序里處理,這種架構會增加一些系統維護和調試成本。
d、存儲過程和常用應用程序語言不一樣,它支持的函數及語法有可能不能滿足需求,有些邏輯就只能通過應用程序處理。
e、如果存儲過程中有復雜運算的話,會增加一些數據庫服務端的處理成本,對于集中式數據庫可能會導致系統可擴展性問題。
f、為了提高性能,數據庫會把存儲過程代碼編譯成中間運行代碼(類似于Java的class文件),所以更像靜態語言。當存儲過程引用的對像(表、視圖等等)結構改變后,
存儲過程需要重新編譯才能生效,在24*7高并發應用場景,一般都是在線變更結構的,所以在變更的瞬間要同時編譯存儲過程,這可能會導致數據庫瞬間壓力上升引起故障(oracle數據庫就存在這樣的問題)。

總結

以上是生活随笔為你收集整理的Oracle存储过程procedure与函数function区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。