Inefficient SQL*Loader Process
Hello. I am looking at an existing process that uses SQL*Loader to load a file into 3 different tables. The file format is below, and consists of 3 distinct record types - CDR, PTY and CHG.
CDR|col1|col2|
PTY|col3|
CHG|col4|col5|
CHG|col4|col5|
CHG|col4|col5|
PTY|col3|
CHG|col4|col5|
CHG|col4|col5|
PTY|col3|
CHG|col4|col5|
CHG|col4|col5|
CHG|col4|col5|
CHG|col4|col5|
CHG|col4|col5|
CHG|col4|col5|
CHG|col4|col5|
CHG|col4|col5|
PTY|col3|
CHG|col4|col5|
CHG|col4|col5|
CHG|col4|col5|
PTY|col3|
CHG|col4|col5|
CHG|col4|col5|
PTY|col3|
CHG|col4|col5|
CHG|col4|col5|
CHG|col4|col5|
CHG|col4|col5|
CHG|col4|col5|
CHG|col4|col5|
CHG|col4|col5|
CHG|col4|col5|
The objective of the file load is to put rows into the table loaded for each CHG row, but the table contains the columns from the CDR and PTY rows. To do this, the original developer ( from 20+ years ago ) created tables for the CDR and PTY rows and used before and after row triggers to populate the columns when the CHG rows are inserted. In order to achieve this, the "rows=1" parameter has been set, which commits after each insert. It is now taking ages to load a 24K row file due to resource constraints on the
0