关于绑定变量与非绑定变量的问题?
SQL> alter session set sql_trace=true;
会话已更改。
已用时间: 00: 00: 00.28
SQL> begin
2 for i in 1 .. 200000 loop
3 insert into t (x) values (i);
4 end loop;
5 end;
6 /
PL/SQL 过程已成功完成。
已用时间: 00: 00: 54.00
SQL> select count(*) from t;
COUNT(*)
----------
200000
已用时间: 00: 00: 00.18
SQL> begin
2 -- v_str := 'insert into t(x) values(:temp)';
3 for i in 1 .. 200000 loop
4 execute immediate 'insert into t(x) values(:temp)'
5 using i;
6 end loop;
7 end;
8 /
PL/SQL 过程已成功完成。
已用时间: 00: 01: 03.39
SQL> alter session set sql_trace=false;
会话已更改。
已用时间: 00: 00: 00.01
SQL>
--------------------
其中表T有一个NUMBER型字段X。
请问:
第一个存储过程有没有使用绑定变量?
若没有使用,为什么使用绑定变量的反而比未使用绑定变量的速度要慢?
若使用了,请问绑定变量有没有一个具体书写的形式?