定义

在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;  

Related Posts