Я хотел знать, есть ли у нас какая-либо техника, с помощью которой мы можем вычислить значение, которое необходимо установить для предложения LIMIT операции массового сбора. Например, ниже, скажем, наш указатель имеет 10 миллионов записей. Какое значение мы можем установить для предложения LIMIT, чтобы иметь оптимальную производительность. Можно ли это вычислить.Установка значения для LIMIT при использовании группового сбора
decalre
cursor c_emp is <some select query>
var <variable> ;
begin
open c_emp;
loop
fetch c_emp bulk collect into var limit 2;
exit when c_emp%NOTFOUND;
end loop;
close c_emp;
end;
Размер строки также будет фактором и объемом доступной памяти сеанса, учитывая количество сеансов, которые могут одновременно запускать процедуру. Я не знаю, какие другие факторы должны будут входить в полную модель оптимизации выборки, но обычно вы получаете уменьшающуюся отдачу, превышающую пару сотен строк. –
Как и в любом случае, наилучшим подходом является сравнение в вашей среде с вашими данными. Как правило, что-то между 100 и 1000 будет довольно близко к оптимальному. Если вы использовали неявный курсор, а не явный, Oracle автоматически будет загружать 100 строк за раз под обложками. –