Subject Re: Memory usage and long running transactions
Author Adam
> I have seen in some documents that long running transactions may
> create performance problems and high VM usage. The statistics of my
> dbs seems ok (small diference between oldest tr and oldest active).
> However in some parts of our UI we show a grid showing data and the
> transaction used is active for the time that window is open. I have
> seen that IB 7.1 has an option for long-running-read-only-transactions
> that do not impact on performance. Is this available in Firebird 1.5 ?
> What parameters should be used ? (I use FIB and Firebird 1.5...).

Why not create a ClientDataset / kbmMemtable or equiv, and copy the
records into this dataset. You can then commit the "read only"
transaction immediately.

There needs to be some discipline to make sure you don't accidentally
overwrite a value that has been changed by someone else between the
read transaction and any update. A simple generator driven field with
appropriate before update triggers can do the hard work for you there.

You could use events to flag records in the dataset as out of date,
and the user could then refresh these with a click on a button.