在基於Oracle數據庫的項目開發中,應盡可能的使用綁定變量。
在以下試驗中可以看到直接變量和綁定變量在執行中的效率差別。
1、新建一個表:
create table t (x int);
2、創建存儲過程1
create or replace procedure proc1 as
begin
for i in 1 .. 1000 loop
execute immediate 'insert into t values( :x)'
using i;
end loop;
end;
/
3、創建存儲過程2
create or replace procedure proc2 as
begin
for i in 1 .. 1000 loop
execute immediate 'insert into t values('||i||')';
end loop;
end;
4、執行存儲過程,比較執行時間
如下圖所示:
第一個采用綁定變量的存儲過程執行只要0.047秒,而第二個需要0.156秒。