|
The answer to your question is it depends. You need to look at the methods
that you are currently using to load the data. I would ask you if you are
using an ETL product or SQL or PL/SQL or a 3rd GL. Based on this response
the answer may be different.
If you are using an ETL tool, then you may find significant performance
benefits by creating a flat file and then processing that into the database.
Of course if you using SQL*Loader then you have the option of using the
direct load option. This will load your data as fast as possible. However,
you then need to consider whether or not you have constraints and indexes on
the table into which you are loading. Constraints of course is an issue with
direct loading, and indexes will need to be rebuilt, but if all you are
looking for is performance this would make a solid option.
If you are using a programming language then you need to consider your
options of using the flat file. I feel that the fewer times that we read or
write data that we can show significant performance benefits. You also need
to consider the location of your database. If both databases reside on the
same machine then you do not have to consider bandwidth issues, but if you
are connecting to a remote machine for your data, then you may find that
creating the flat file will give you a performance boost.
As for your problems with buffer size you need to provide me with more
details on your error to help you diagnose this problem. I am not sure if
you are referring to the "readsize" option in SQL*Loader or the "arraysize"
option in SQL*Plus. Generally you should know that you should never set any
values within the database beyond the stated maximum value. This may cause
the database to act in a non-predictive manner. Check your documentation and
see the maximum values for these parameters.
For More Information
|