Я хотел бы знать, что будет иметь лучший уровень параллелизма, VARRAY или вложенные таблицы. Действительно ли VARRAY нужна только одна операция ввода/вывода для загрузки коллекции?
Это для систем бронирования.
С уважением,
Я хотел бы знать, что будет иметь лучший уровень параллелизма, VARRAY или вложенные таблицы. Действительно ли VARRAY нужна только одна операция ввода/вывода для загрузки коллекции?
Это для систем бронирования.
С уважением,
Действительно ли VARRAY нужна только одна операция ввода/вывода для загрузки коллекции?
Определите VARRAY
и тип коллекции:
CREATE TYPE test_varray AS VARRAY(3) OF NUMBER;
CREATE TYPE test_collection AS TABLE OF NUMBER;
Затем вы можете создать аналогичные таблицы для каждого из этих типов данных:
CREATE TABLE test1 (
id NUMBER PRIMARY KEY,
array test_varray
);
CREATE TABLE test2 (
id NUMBER PRIMARY KEY,
array test_collection
) NESTED TABLE array STORE AS test2__array;
Вы можете INSERT
в эти таблицы как один оператор:
INSERT INTO test1 ( id, array ) VALUES ( 1, test_varray( 1.1, 1.2, 1.3 ) );
INSERT INTO test2 ( id, array ) VALUES ( 1, test_collection( 1.1, 1.2, 1.3 ) );
Вы можете SELECT
из этих таблиц как один оператор:
SELECT id, column_value FROM test1 CROSS JOIN TABLE( array );
SELECT id, column_value FROM test2 CROSS JOIN TABLE( array );
Которые оба выводят:
ID | COLUMN_VALUE -: | -----------: 1 | 1.1 1 | 1.2 1 | 1.3
db‹>скрипка здесь
Так что с точки зрения INSERT
/SELECT
операций они функционально схожи. Документация Oracle — Понимание типов коллекций PL/SQL в основном объясняет некоторые различия:
VARRAY
имеет ограниченное количество элементов и всегда плотно.