--- In IBObjects@y..., "Jason Wharton" <jwharton@i...> wrote:
> This question and the one after it are both related to what I wantto say.
> The transaction OAT processing is causing these fetches. I am not
> fully putting in place all of the nice things horizontal datasetrefinement
> will allow. All this extra fetching will go away on these datasetswith the
> benefits of this new feature because there is no point in thefetches with
> the ability to refine a dataset. It is non refined datasets thatneed to
> exhaust the cursor to allow the transaction to be released. Withrefinement
> I can close and reopen a cursor anywhere in the entire dataset.That is the
> whole point of the feature to gain an added level of freedom fromholding a
> cursor open.to open a
> I'll explain it a bit better if I can. The new refinement is able
> cursor and walk a few records and then if necessary, like whenLocate or
> Last is called it kills the current cursor and generates a new onewhere the
> records of interest are. There is no point in trying to exhaustrecords out
> of a cursor when it can kill itself and regenerate itself anywherein the
> dataset required.final
> So, what you should look forward to (hopefully before I make the
> release) is this background fetching going away. Cursors simplyneed to be
> truncated (killed) so that OAT processing will go on totallyunobstructed.
> That is a totally cheap operation under the architecture of therefinement
> process. The only inefficiency it will impose is records that havebeen
> batched together in network packets may have to be requested againif a new
> boundary to the current cursor is defined.10 or so
> Perhaps you have noticed performance when doing individual fetches.
> will go by quickly and then you hit one fetch that takes just apause. Each
> time records are sent, InterBase prefetches and batches themtogether. If it
> gets half way through a batch and truncates the cursor it willfetch records
> from the already prefetched batch. Not a big deal if this onlyhappens on a
> basis of once in 30 seconds at most. Depends on how you have tunedthe
> transaction timeout parameters.What should I do?
> Hope this makes sense. If not, don't worry about it. I've got it all
> (fairly) under control.