Subject | Re: [firebird-support] very slow commit |
---|---|
Author | Ann W. Harrison |
Post date | 2010-02-09T17:02:45Z |
Milan Tomeš - Position wrote:
the index will be updated immediately. That's pretty important. If
the index updates were deferred to commit, your transaction wouldn't
see its own updates with indexed queries. Inactive indexes are
recreated when the transaction that activates them commits.
the whole index, so if you have an index with 10,000 records and store
another 5,000 records, you'll be indexing 15,000 records. And, during
your load, queries on the table that could have been indexed will be
full table scans.
Good luck,
Ann
> Dne 09.02.2010 13:26, svanderclock napsal(a):Not usually. If an index is active when a record version is created,
>>
>> I update one row in 10 tables with a lot of index. (around 300 index
>> to update) to insert or Update the data it is very fast (around 100ms)
>> but, when i commit the SQL, it is very slow (around 3 to 6 seconds!).
>> i see also that my hardrive is use a lot in the commit.
>>
>
> AFAIK Indexes are updated during commit.
the index will be updated immediately. That's pretty important. If
the index updates were deferred to commit, your transaction wouldn't
see its own updates with indexed queries. Inactive indexes are
recreated when the transaction that activates them commits.
> You can do these steps:Err... That's going to increase the commit time. Activation recreates
> 1. Before a bulk load of a lot of records it's recommended to deactivate
> indexes and activate them after loading is done
the whole index, so if you have an index with 10,000 records and store
another 5,000 records, you'll be indexing 15,000 records. And, during
your load, queries on the table that could have been indexed will be
full table scans.
Good luck,
Ann