从Oracle9i开始,Oracle引入了"Peeking of User-Defined Bind Variables"特性,这个特性可以用来在存在数据倾斜时对执行计划纠偏。但是这一特性也可能引发一些副作用,所以Oracle同时引入了一个内部参数用于控制这一特性:
SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ
2 FROM SYS.x$ksppi x, SYS.x$ksppcv y
3 WHERE x.inst_id = USERENV ('Instance')
4 AND y.inst_id = USERENV ('Instance')
5 AND x.indx = y.indx
6 AND x.ksppinm LIKE '%&par%'
7 /
Enter value for par: peek
old 6: AND x.ksppinm LIKE '%&par%'
new 6: AND x.ksppinm LIKE '%peek%'
NAME VALUE DESCRIB
------------------------------ --------------------
_optim_peek_user_binds TRUE enable peeking of user binds
注释:此参数缺省值为True,当设置为False时将禁用peeking of user binds。