[數據庫]存儲過程

1 存儲過程是什麼

存儲過程定義

存儲過程是使用SQL語句和流程控制語句編寫的模塊,存儲過程經編譯和優化後存儲在數據庫服務器端數據庫中,使用時調用即可。

存儲過程語法

CREATE PROCEDURE [過程名] ([參數])
    [局部聲明]
    [過程體]
注:這裏的聲明和參數都是可選的,只有在需要時才指定。

2 存儲過程優缺點

存儲過程優點

A.執行速度快 存儲過程只在創造時進行編譯,以後每次執行存儲過程都不需再重新編譯,而一般 SQL 語句每執行一次就編譯一次,所以使用存儲過程可提高數據庫執行速度。
B.允許組件式編程 當對數據庫進行復雜操作時(如對多個表進行 Update,Insert,Query,Delete 時),可將此複雜操作用存儲過程封裝起來與數據庫提供的事務處理結合一起使用。這些操作,如果用程序來完成,就變成了一條條的 SQL 語句,可能要多次連接數據庫。而換成存儲,只需要連接一次數據庫就可以了。
C.減少工作量 存儲過程可以重複使用,可減少數據庫開發人員的工作量。
D.提高系統安全性 安全性高,可設定只有某此用戶才具有對指定存儲過程的使用權。

存儲過程缺點

A.移植性差 依賴於數據庫廠商,難以移植(當一個小系統發展到大系統時,對數據庫的要求也會發生改變);
B.難以調試、維護 業務邏輯大的時候,封裝性不夠,難調試難以維護;
C.服務器不能負載均衡 複雜的應用用存儲過程來實現,就把業務處理的負擔壓在數據庫服務器上了。沒有辦法通過中間層來靈活分擔負載和壓力.均衡負載等。

3 存儲過程與函數的區別

存儲過程和函數目的是爲了 可重複地 執行操作數據庫的sql語句的集合。

區別是寫法和調用上。

寫法上:

定義:

存儲過程的參數列表可以有輸入參數、輸出參數、可輸入輸出的參數;
函數的參數列表只有輸入參數,並且有return <返回值類型,無長度說明>。

返回值上:

存儲過程的返回值,可以有多個值;
函數的返回值,只有一個值。

調用方式上:

存儲過程的調用方式有:

1)、exec <過程名>;

2)、execute <過程名>;

3)、在PL/SQL語句塊中直接調用。

函數的調用方式有:

  在PL/SQL語句塊中直接調用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章