#1  
Old 18th July 2005, 06:47 PM
Hans Hasenack
 
Posts: n/a
Default Transaction question

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  
Old 19th July 2005, 03:15 PM
Eivind Bakkestuen [NDD]
 
Posts: n/a
Default Re: Transaction question

> 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  
Old 19th July 2005, 10:56 PM
Keith Johnson [NDX]
 
Posts: n/a
Default Re: Transaction question

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  
Old 19th July 2005, 10:50 PM
Hans Hasenack
 
Posts: n/a
Default Re: Transaction question

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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

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


All times are GMT +11. The time now is 02:05 PM.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.