今天翻了一下《oracle 9i&10g的編程藝術(shù)》,第一章的第三節(jié)提到了使用綁定變量提高性能。
對比下面兩段SQL
create or replace procedure proc1
as
begin
for i in 1 .. 10000
loop
execute immediate
'insert into t values ( :x )' using i;
end loop;
end;
create or replace procedure proc2
as
begin
for i in 1 .. 10000
loop
execute immediate
'insert into t values ('||i||')'
end loop;
end;
以上是用Procdure來描述的,前提是有個空表
create table t(x int)
插入一萬條數(shù)據(jù)的對比結(jié)果可以在PL/SQL中看到時間對比。
proc1僅僅只有proc2的1/12。
可以看到,如果使用了綁定變量(后面稱為綁定變量方法),則只有4 次硬解析;沒有使用綁定變量
時(后面稱為無綁定變量方法),卻有不下 10 000 次的硬解析(每次插入都會帶來一次硬解析)。還可以
看到,無綁定變量方法所用的閂數(shù)是綁定變量方法的兩倍之多------書中原文
posted on 2009-03-27 13:30
湘江夜游神 閱讀(168)
評論(0) 編輯 收藏 所屬分類:
Oracle學習