Subject | Re: [IBO] How to improve bulk insert |
---|---|
Author | Henry Franquet |
Post date | 2006-01-25T14:36:37Z |
Jason Wharton a écrit :
executedItem events! Help says that I should have an IB_Transaction in
order to select isolation mode. I have three T_IBDatabase
1. IBBase0 (isolation mode = tiCommited) for standard read/write
with (and to be advised of common data modification with an Ib_Event)
* a Ib_Transaction linked to the previous one with isolation =
ti_concurrency and Read-only mode to take a snapshot of the
base and is linked with an IB_Cursor to the source of the
TIB_DataPump
2. IBBase1 (isolation mode = tiConcurrency) for exporting data from
IB_Transaction above to the new database and is, with a
TIB_Cursor, the destination of the TIB_DataPump
3. IBBase2 (isolation mode = tiCommited) for importing data to my
base (with TIB_cursors and TIB_Dsql for dealing with insert,
update, generator's transcription, Database schema changes between
sender and and so on ...)
I first, extract metadata from my base which I restore to a base which
would be the root of the new user's database
then populate it with common's data
for each user, who log over network (WAN) I copy this "root" database to
a specific location and began to feed it with user's specific data. And
it is this "feeding" I have to improve in speed. Depending on the soft
and hardware configuration of the server, I have very different times,
but basically it's Firebird process and disks write access which are the
bottlenecks
It's why I'm seeking for not overloading firebird 's engine on the
database server (wich isolation, wich component, ...)
Thanks
> Keep in mind if you do a Commit it could cause your source cursor to close.And so it would be the reason for error's message when I commit on the
> My understanding of Firebird/InterBase is that these incremental commits
> should not be necessary. The only thing that would be painful is if you did
> lots of them and then had to do a rollback. Otherwise, it is optimistic and
> a commit is simply an adjustment to the transaction and all the record
> versions stay just as they are. In which case, why do incremental commits
> along the way?
>
> Jason
>
executedItem events! Help says that I should have an IB_Transaction in
order to select isolation mode. I have three T_IBDatabase
1. IBBase0 (isolation mode = tiCommited) for standard read/write
with (and to be advised of common data modification with an Ib_Event)
* a Ib_Transaction linked to the previous one with isolation =
ti_concurrency and Read-only mode to take a snapshot of the
base and is linked with an IB_Cursor to the source of the
TIB_DataPump
2. IBBase1 (isolation mode = tiConcurrency) for exporting data from
IB_Transaction above to the new database and is, with a
TIB_Cursor, the destination of the TIB_DataPump
3. IBBase2 (isolation mode = tiCommited) for importing data to my
base (with TIB_cursors and TIB_Dsql for dealing with insert,
update, generator's transcription, Database schema changes between
sender and and so on ...)
I first, extract metadata from my base which I restore to a base which
would be the root of the new user's database
then populate it with common's data
for each user, who log over network (WAN) I copy this "root" database to
a specific location and began to feed it with user's specific data. And
it is this "feeding" I have to improve in speed. Depending on the soft
and hardware configuration of the server, I have very different times,
but basically it's Firebird process and disks write access which are the
bottlenecks
It's why I'm seeking for not overloading firebird 's engine on the
database server (wich isolation, wich component, ...)
Thanks