У меня есть процедура, которая назначит продукты против существующего списка ордеров.Индивидуальная регистрация записей при работе с большим количеством записей
For rec_ord in(Select Order_ID,Order_Prop1,Order_Prop2,<some more columns>
from Order_Master Where <Some Conditions>)
Loop
<Step-1:Do some Processing on Order_Prop1,Order_Prop2>
[Log the Processing Result]
For rec_prod in (Select Prod_ID,Prod_Prop1,Prod_Prop2,<some more columns>
from Product_Master
Where Prod_Prop1 = Ord_Prop1
and <Some Conditions>)
Loop
<Step-2:Do Some Processing using Prod_Prop2 and Order_Prop2>
[Log the Processing Result]
<Decide Whether to Assign or Not>
[Log the assignment or non-assignment with reason]
End Loop
End Loop
Я пробовал ниже 2 метода.
- Насыпная Собрать: Я Комбинированный Шаг-1 & 2 в одном запросе путем присоединения Order_Master & Product_Master. А затем с помощью Bulk-Collect вставьте назначение. Однако я теряю Logging & Отслеживание отдельной записи.
- Для Loop: Я использовал For Loop, как указано выше. Но это слишком долго. Увеличение времени выполнения.
Я хочу, чтобы обработка была быстрой вместе с протоколом слежения &. Любая помощь приветствуется.
Thanx заранее.
Дополнительная информация. Количество записей в Order_Master составляет около 50-60 тыс., А Product_Master - около 200-220 тыс. – Debabrata
Что делает вариант 2 медленным? Это также медленно, если вы удалите журнал? – Rene
№ Без регистрации часть, это намного быстрее. Хотя это не так быстро, как вариант 1. – Debabrata