|
Log in | ||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|
Thread Tools | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Hi
I am processing large amouns of records (100K+) for modifying, adding and sometimes deleting. To speed up things I use transactions. The record size of the table being processed is rather unpredictable as my users can add fields to it. Now what happens it that at a certain point the transaction gets so big that the server runs out of physical memory and the memory swapping starts... And performance drops from say 11Krecords/s to 200 records/s To avoid this, I perform an "autocommit" (Commit/StartTransaction) say every 10.000 records. What I would like much more is to check how much space my transaction is taking up, and rather use that as a trigger for my autocommit call. So my 'autocommit' routine gets a bit more intelligent than a simple counter... Any ideas, or maybe there's even a better solution to this? TIA - Hans |
|
#2
|
|||
|
|||
|
> I am processing large amouns of records (100K+) for modifying, adding
> and sometimes deleting. To speed up things I use transactions. The > record size of the table being processed is rather unpredictable as > my users can add fields to it. The recordsize is never unpredictable at runtime; the datadictionary will return the answer in TnxFieldsDescriptor.GetRecordLength. You can use that to calculate the needed amount of space for x records in RAM. -- Eivind Bakkestuen [NDD] Newsgroups searchable at www.tamaracka.com |
|
#3
|
|||
|
|||
|
Eivind Bakkestuen [NDD] wrote:
> > I am processing large amouns of records (100K+) for modifying, > > adding and sometimes deleting. To speed up things I use > > transactions. The record size of the table being processed is > > rather unpredictable as my users can add fields to it. > > The recordsize is never unpredictable at runtime; the datadictionary > will return the answer in TnxFieldsDescriptor.GetRecordLength. You > can use that to calculate the needed amount of space for x records in > RAM. Just a thought, would this be an estimate, as does'nt block size, number of records per block etc come into effect.? -- Keith[NDX]; |
|
#4
|
|||
|
|||
|
I See... I can calculate the transaction size by keeping some kind of
administration of new/modified/deleted records. My problem is however that it is a rather complex database, and lots of records in lots of tables are modified during my transaction. This would make my transaction-administrative routines very complex, and they are already complex enough - believe me. So from my point of view, the data that the server manages during a transaction is just the kind of administration required to check how large the transaction is actually getting. So it would be nice to know how large, or for that matter, how much space (percentage?) the transaction occupies of the server memory to make my Commit/Starttransaction call to flush the changes. Another possibility could be to check the 'processing speed' and perform the Commit/StartTransaction call when performance drops below 10% of the initial speed... Any better ideas how to chieve the best 'autocommit' call? Thanks - Hans "Eivind Bakkestuen [NDD]" <Ieivind.bakkestuenHATE@nexusdb.comSPAM> schreef in bericht news:42dc8041@wic040d.... >> I am processing large amouns of records (100K+) for modifying, adding >> and sometimes deleting. To speed up things I use transactions. The >> record size of the table being processed is rather unpredictable as >> my users can add fields to it. > > The recordsize is never unpredictable at runtime; the datadictionary will > return the answer in TnxFieldsDescriptor.GetRecordLength. You can use that > to calculate the needed amount of space for x records in RAM. > > > -- > > Eivind Bakkestuen [NDD] > Newsgroups searchable at www.tamaracka.com > > > |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Error: Explicit transaction in progress, nested transaction are not supported ... | Bert Moorthaemer | nexusdb.public.support.sql | 13 | 2nd June 2008 10:58 PM |
| Re: Multiple changes, one transaction, with SQL | Eivind Bakkestuen [NDD] | nexusdb.public.support.sql | 1 | 14th April 2004 06:02 AM |
| Transaction | Sophie Rattier | nexusdb.public.support | 5 | 16th November 2003 09:18 PM |
| Serialized transaction question, revisited | Michel | nexusdb.public.support | 37 | 16th September 2003 02:05 AM |
| Serialized transaction question | Michel | nexusdb.public.support | 0 | 9th September 2003 02:18 AM |