Мы использовали временную таблицу для хранения промежуточных результатов в хранимой процедуре pl / sql. Может ли кто-нибудь сказать, есть ли разница в производительности между вставкой массового сбора через pl / sql и простой вставкой SQL.
Вставить в [Имя таблицы] [Выбрать запрос, возвращающий огромное количество данных]
or
Курсор для [Выбрать запрос, возвращающий огромный объем данных]
открытый курсор
получить курсор массово собрать в коллекцию
Используйте FORALL для выполнения вставки
Какой из двух вариантов лучше вставить огромное количество временных данных ?.
SELECT
занимает много времени, его производительность может не сильно пострадать, поскольку этап синтаксического анализа в любом случае будет относительно коротким, но использование переменных связывания уменьшит влияние на общий пул, что помогает снизить общую нагрузку на сервер. от всего синтаксического анализа, который он должен делать. Но это соображение ортогонально вопросу о производительности простого SELECT vs. BULK COLLECT. - person Jeffrey Kemp   schedule 20.04.2010