Szybszy sposób wstawiania za pomocą skryptu do Oracle?

Pracuję z aplikacją C # .NET 4.0, która używa ODP.NET 11.2.0.2.0 z bazą danych Oracle 11g. Aplikacja ładuje wstępnie kilka tabel z danymi, a ponieważ większość z nich ma mniej niż 20 rekordów, skrypty działają dość szybko. Jednak jeden ze skryptów ma 802 rekordów, a wstawienie rekordów zajmuje 248,671 sekundy, co wydaje się nadmierne w przypadku tak małej ilości danych z bazą danych, która reklamuje szybkie operacje przy dużych ilościach danych.

Zastanawiam się, czy istnieje szybszy sposób wstawiania danych za pomocą skryptu niż obecny sposób pisania skryptu?

Wstawiana tabela jest zdefiniowana w ten sposób:

CREATE TABLE FileIds
(
     Id                 NUMERIC(38)                         NOT NULL
    ,Name               NVARCHAR2(50)   DEFAULT 'Unknown'   NOT NULL 
    ,FileTypeGroupId    NUMERIC(38)                         NOT NULL
    ,CONSTRAINT FK_FileIds_FileTypeGroups FOREIGN KEY ( FileTypeGroupId ) REFERENCES FileTypeGroups ( Id )
)

A skrypt do wstawienia wygląda następująco:

BEGIN
    INSERT ALL
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1152,5)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1197,10)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1200,6)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1143,3)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1189,9)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1109,7)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1166,4)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (0,8)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1149,2)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1400,1)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1330,11)
        INTO FileIds ( Id, FileTypeGroupId ) VALUES (1000,0)
        -- 790 Records removed for example purposes.
        SELECT * FROM DUAL;
    COMMIT;
END;

Tabela FileTypeGroups, do której odwołuje się klucz obcy, jest wstępnie załadowana przed załadowaniem tabeli FileIds. Nie ma sekwencji ani wyzwalaczy związanych z tabelą FileIds, a jak dotąd nie utworzono indeksów dla tabeli.

questionAnswers(1)

yourAnswerToTheQuestion