Javid,
I'm kind of sorry that I do not know the solution for your exact problem (I
can't find this particular application in B7332), but since you've received
no answer, I decided that you can give it a try:
There are three main time consuming parts in the task of showing records in
a grid: first, database has to actually retrieve them, second, it has to
pass them over to client workstation and third, OneWorld has to cache in
grid buffer and display it (last task also includes processing event rules).
I would guestimate relative timings as 20%, 20% and 60% (10%, 10%, 80% on
large record sets)
1. You can easily reduce execution time by changing the sequence in which
OneWorld retrieves the data. First part will remain constant, but second and
third will dramatically reduce:
You can create a custom format for the grid (click Right button, select
Format -> New Format) and then change the sequence in which the records are
displayed (click Right button, select Grid -> Sequence and change A/D column
values to D [descending]). OneWorld will actually issue a different SQL to
the database and you'll see your last records as first. This will work
faster then Ctrl-End even if you don't have an index on the field by which
you sort, but you may consider adding an index if you need this type of
sorting more often.
2. As I already wrote, adding an index can speed up the first part.
3. For reasons unknown I have seen noticeable performance improvement if you
add a filter field, even if it does not reduce resulting record set (that
is, if you filter your records by a field which has the same value for all
of them, you'll get the same results faster). I'm talking here about the
time which passes between pressing find button and the time OneWorld starts
retrieving records (STOP button flashes at bottom right corner of the form).
It seems that OneWorld forces RDBMS to rebuild the access path...
4. Retrieving large record sets consumes buffer memory - if you run out of
RAM and Windows starts swapping, you get a severe performance hit.
A couple of obvious tips:
- prior to creating custom sort sequence, you may wish to create a format
called Standard, with standard sequencing - otherwise you'd have to create
it yourself later.
- If you don't create a format - you loose sequencing changes after logout
- You can create user overrides only for a particular user, but you can
easily copy them to other users - your SysAdmin should know how
Regards,
Vladimir Ponomarev
-----Original Message-