Consultor Eletrônico



Kbase P104068: REPOSITION TO ROWID statement is slow
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   03/02/2009
Status: Unverified

SYMPTOM(s):

REPOSITION TO ROWID statement is slow

The query being repositioned contains a considerable number of records.

The query being repositioned does not specify the INDEXED-REPOSITION option.

FACT(s) (Environment):

All Supported Operating Systems
Progress 9.x
OpenEdge 10.x
OpenEdge Category: Language (4GL/ABL)

CAUSE:

This is expected behavior.

The following is a quote from the Language Reference manual, under "REPOSITION Statement":

- The REPOSITION statement might be slow if the record you position to has not yet been fetched.

- The REPOSITION TO ROWID statement might be especially slow. If the record has not yet been fetched, Progress performs a series of GET NEXT operations until the record is found. You can optimize the performance of a REPOSITION TO ROWID statement by opening the query using the INDEXED-REPOSITION option of the OPEN QUERY statement.

FIX:

You may speed up the REPOSITION TO ROWID statement by specifying the INDEXED-REPOSITION option in your OPEN QUERY statement (for static queries) or in the string passed to the QUERY-PREPARE() method (for dynamic queries).

Please beware that specifying the INDEXED-REPOSITION option has side effects that might impair the functionality of your application, especially when the query is used in conjunction with a browse widget. Please see Solution P77065 and the documentation for further details.