В мультитабличной инструкции INSERT
вычисляемые строки, полученные из строк, которые возвращены из результатов оценки подзапроса, вставляются в одну или более таблиц.
Мультитабличные инструкции INSERT
удобны в сценарии хранилища данных. Необходимо регулярно загружать хранилище данных, чтобы оно выполняло свое назначение по облегчению бизнес-анализа. Для обеспечения этого данные из одной или нескольких операционных систем должны извлекаться и копироваться в хранилище. Процесс извлечения данных из системы-источника и заполнение ими хранилища данных обычно называется ETL – сокращение, обозначающее извлечение, преобразование и загрузку.
Во время извлечения требуемые данные должны идентифицироваться и извлекаться из нескольких разных источников, таких как системы баз данных и приложения. После извлечения данные должны физически переноситься в целевую систему или промежуточную систему для дальнейшей обработки. В зависимости от выбранных средств транспортировки некоторые преобразования могут выполняться во время данного процесса. Например, инструкция SQL, которая непосредственно обращается к удаленной целевой системе через шлюз, может объединять два столбца в качестве части инструкции SELECT
.
После загрузки информации в базу данных Oracle преобразования данных могут выполняться с помощью операций SQL. Мультитабличная инструкция INSERT
служит одним из способов реализации преобразований данных SQL.
Мультитабличные инструкции INSERT
-
Используйте инструкцию
INSERT
…SELECT
как часть одиночной инструкции DML для вставки строк в несколько таблиц. -
Мультитабличные инструкции
INSERT
применяются в системах хранилищ данных для передачи данных из одного или нескольких рабочих источников в набор целевых таблиц.
-
Они обеспечивают значительное улучшение эффективности:
-
одиночной инструкции DML в сравнении с несколькими инструкциями
INSERT…SELECT
; -
одиночной инструкции DML в сравнении с процедурой выполнения нескольких вставок с помощью синтаксиса
IF...THEN
.
-
Мультитабличные инструкции INSERT
предоставляют преимущества инструкции INSERT
… SELECT
в случаях, когда в качестве целевых объектов задействовано несколько таблиц.
Без мультитабличной инструкции INSERT
приходилось иметь дело с n независимыми инструкциями INSERT
… SELECT
, тем самым обрабатывая один и тот же источник данных n раз и увеличивая нагрузку по преобразованию данных в n раз.
Как и в случае существующей инструкции INSERT
...
SELECT
, новая инструкция может выполняться параллельно и использоваться с механизмом прямой загрузки для ускорения работы.
Каждая запись из любого входного потока, например таблицы нереляционной базы данных, может теперь преобразовываться в несколько записей для среды таблиц реляционных баз данных. Для альтернативной реализации этих функциональных возможностей потребовалось бы написать несколько инструкций INSERT
.
Далее: Типы данных INTERVAL