从图中可以看出,oracle数据库是由实例和一组数据库文件组成。实例是由oracle开辟的内存区和一组后台进程组成的。
创建如下过程,验证执行速度
create or replace procedure proc1
as
begin
for i in 1..100000
loop
execute immediate
'insert into t values('||i||')';
commit;
end loop;
end;
/
PARSE_CALLS:解析的次数
executions: 执行的次数
select t.sql_text,t.SQL_ID,t.PARSE_CALLS,t.EXECUTIONS from v$sql t where sql_text like '%insert into t values%';
绑定变量优化。
create or replace procedure proc2
as
begin
for i in 1..100000
loop
execute immediate
'insert into t values(:x)' using i;
commit;
end loop;
end;
/
如下图,解析了1次,执行了100000次
批量提交
create or replace procedure proc4
as
begin
for i in 1..100000
loop
insert into t values(i);
end loop;
commit;
end;
/