db-ddlutils-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Dudziak" <tom...@gmail.com>
Subject Re: How to speed up its' work on Oracle.
Date Thu, 13 Apr 2006 09:55:28 GMT
On 4/13/06, Jun Li <allanjunli@gmail.com> wrote:

> Reading Oracle model is very slow, should I define the connection parameter?
> Will it help?

I cannot really help you there. Perhaps there are parameters that
affect this, but I don't know them .

> I used the batch mode for inserting data, but for a large amount of data
> (about 80,000) in one table, it doesn't help much. It took over 12hrs to get
> about 6,000 records inserted on SQL Server. However, DataToDatabaseSink
> works well for other small tables. I tried to set batch size from 100 to
> 1000, but it doesn't make much difference in my case. Is there anyway to
> improve this?

Speed of batch mode largely depends on the batch size (which depends
on the amount of memory you have and the type of data, e.g. usually
you can specify 10000 easily).
And even more important is the order in which you insert. Say, if you
have three tables A, B, C, then an XML where you have

<A ...>
<B ...>
<C ...>
<A ...>
<B ...>
<C ...>
...

will effectively turn batch mode off because in batch mode you can
only insert into a single table. Hence, a change of tables will result
in the commit of the batch.
So you should order your XML such that

<A ...>
...
<A ...>
<B ...>
...
<B ...>
<C ...>
...
<C ...>

and this if possible in foreign key order with the referenced tables
before the referencing tables.

> BTW, you said "create table in Oracle", I thought this function hasn't been
> finished, was my memory serve me wrong or you've finished this stuff.

I think you confuse that with something else, e.g. CREATE DATABASE ?

Tom

Mime
View raw message