bind-переменные, гистрограммы и pl/SQL

asdtyu
Дата: 20.02.2007 14:11:11
известно, что bind-переменные рекомендуются как средство, уменьшающее кол-во разборов запроса
также известно, что гистограммы используются только при указании во WHERE литералов, а не bind-переменных

вопросы:

почему/зачем такая дискриминация и как с ней живут?

как ведет себя оптимизатор, если вызов происходит из тела процедур PL/SQL:
procedure test(par in number)
select a,b,c INTO ... from x where d = par
...


при вызове этой процедуры с параметром par=25 как будет происходить обработка?
как
select a,b,c from x where d = 25 - как литерал (и использованием гистограммы)
или как
variable t
exec :t=25
select a,b,c from x where d = :t - как bind-переменная? (без использования гистограммы)
?
Grami
Дата: 20.02.2007 14:15:46
asdtyu
гистограммы используются только при указании во WHERE литералов, а не bind-переменных


ниправильна для 9i и 10g
читай bind variable peeking
Elic
Дата: 20.02.2007 14:24:49
asdtyu
при вызове этой процедуры с параметром par=25 как будет происходить обработка?
STFF и снова связанные переменные...