Oracle 子程式內聯

2021-07-03 13:13:30 字數 647 閱讀 1893

-- start

如果子程式 a 呼叫 b,內聯可以把 b 的**合併到 a 中,從而減少子程式呼叫,提高效能,下面是乙個簡單的例子。

-- 子程式 a

procedure a

isbegin

-- 指定下面的子程式 b 內聯

pragma inline (b, 'yes')

b(1);

-- 注意此處的子程式不會內聯

b(2);

end a;

-- 子程式 b

procedure b (x pls_integer)

isbegin

dbms_output.put_line(x);

end b;

如果你覺得在每乙個子程式呼叫前加上 pragma inline 在麻煩,你可以將編譯引數 plsql_optimize_level 設定為 3 (預設值是2),這樣 oracle 會把每乙個子程式呼叫都內聯。

--更多參見:oracle sql 優化精萃

-- last edited on 2015-06-29

-- created by shangbo on 2015-06-29

-- end

Oracle 內建子程式簡介

大學生兼職支援 url sql set serveroutput on sql remark 內建程式包 sql remark 常用的內建程式包如下 sql remark dbms out pl sql中的輸入和輸出顯示 sql remark dbms job 任務排程服務 sql remark d...

oracle巢狀子程式

劍破冰山學習筆記 巢狀子程式的說明 將乙個子程式定義在乙個pl sql塊中的,該子程式稱為巢狀子程式。只有定義在具名塊中,才能儲存到資料庫中,匿名塊裡是無法儲存到資料庫的 區別 函式和過程是schema級別的子程式,包裡的函式和過程,是package級別的子程式。這兩類都不是巢狀子程式。宣告 巢狀子...

Oracle中的子程式和包

在oracle中通過使用子程式和包將pl sql 封裝起來,從而實現模組化,在以後的呼叫中可以多次復用,而不受前台語言的限制,同時通過用子程式和包將pl sql 封裝起來,有利於提高開發效率和執行效率,但是維護性卻沒有物件導向靈活,如果乙個子程式受到影響,就需要修改該子程式的定義。在oracle中子...