Kbase 16834: Add Record and Reposition Query Slow with ADM applications and Dataservers
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/16/2008 |
|
Status: Unverified
FACT(s) (Environment):
Progress ADM
Progress 8.x
AS/400 Dataserver
ORACLE Dataserver
Sybase 10 Dataserver
MS SQL Server Dataserver
ODBC Dataservers Dataserver
SYMPTOM(s):
Repositioning a browser's query with a DataServer may be very slow if there are a large number of records in your browser
This may affect a SmartObject application when records are added to both SmartQueries (through a SmartViewer) and SmartBrowsers
CAUSE:
The dataservers do not utilize the indexed-repostion option of the open query statement. This option can significantly increase the performance of
browsers with large data sets with a Progress database.
How this affects Smartobjects Applications
==================================
SmartObject applications perform a reposition with rowid when records are added to both SmartQueries (through a SmartViewer) and SmartBrowsers. In dlc/src/adm/method/tableio.i, adm-end-update procedure completes the addition of a new record and calls reposition-query in dlc/src/adm/method/record.i.
The procedure reposition-query repositions the query to the record just added by the user. If there are many records in query and the new record is at the end then each record gets read in order to reposition to this new last record in the query, this could take quite a while.
FIX:
There are a few things that can be done to improve the performance of a reposition statement:
1) Modify setting of -Mm startup parameter
2) Make use of fields lists to cut down on information going over the network
3) Change design of your query so that it does not contain a large number of records (limit the query by some criteria)