定义
在Oracle中,对于一个提交的sql语句,存在两种可选的解析过程,硬解析和软解析。
一个硬解析需要经解析、制定执行路径、优化访问计划等步骤。硬解析不仅仅会耗费大量的cpu,更重要的是会占据重要的闩(latch)资源。唯一使得oracle能够重复利用执行计划的方法就是采用绑定变量。绑定变量的实质就是使用变量来代替sql语句中的常量。绑定变量能够使得每次提交的sql语句都完全一样。
绑定变量使用格式
#定义变量i
variable i number;
#设置当前语句的变量值
exec :i :=1;
#使用绑定变量的SQL语句
select * from t where id=:i;
绑定变量使用前
select * from test where id=1;
select * from test where id=2;
绑定变量使用后
variable i number;
exec :i :=1;
select * from test where id=:i;