Kbase P18639: How can I reduce the size of the .SRT file in Progress?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  7/24/2008 |
|
Status: Verified
GOAL:
How can I reduce the size of the .SRT file in Progress?
GOAL:
What does the FORWARD-ONLY attribute for a query do?
GOAL:
What does the -noautoreslist startup parameter do?
FACT(s) (Environment):
All Supported Operating Systems
Progress 9.1E
OpenEdge 10.x
OpenEdge Category: Language (4GL/ABL)
FIX:
In Progress 9.1D05 there is a new query attribute FORWARD-ONLY and a new startup option, '-noautoreslist'. This has been introduced to improve performance of static and dynamic queries that do not require a result-list, e.g. queries that do not require the ability to invoke the GET PREV command/function. The '-noautoreslist' startup parameter allows static NON-SCROLLING queries to avoid building result-lists. The FORWARD-ONLY query attribute will allow the query to avoid a result-list whether static or dynamic. Avoiding the result-list improves the performance of the query and minimizes the .srt disk space usage.
FORWARD-ONLY Query Attribute
The FORWARD-ONLY query attribute is a READ/WRITE attribute, which when set to true for a query avoids building a result-list. Motion is restricted to forward only in the query. The default setting is false, which will build a result-list and any motion is permitted. If FORWARD-ONLY is set to false, the QUERY will behave just as normal, with any prev/last/first/reposition allowed, and will build a result-list.
If FORWARD-ONLY is set to true, the QUERY will not automatically build a result-list. It will be an error to GET-PREV, GET-LAST, REPOSITION or BROWSE such a query. FORWARD-ONLY cannot be set while the query is open or being browsed.
Return Type : Logical
Applies To : Query handle
Syntax: <query handle>:FORWARD-ONLY [=logical-expression]
-noautoreslist Startup Parameter
The -noautoreslist startup parameter will change the behavior of STATIC, non-scrolling queries only. A static non-scrolling query is one that:
- Comes into being with a DEFINE QUERY or OPEN QUERY statement
- Has no SCROLLING keyword on its DEFINE statement (or had no DEFINE statement)
- Has not been implicitly changed into SCROLLING by being part of a DEFINE BROWSE in the same compilation unit
The change in behavior will be that such queries will no longer automatically build result-lists. It will now be an error to use the following on them:
- GET-PREV method or GET PREV statement
- GET-LAST method or GET LAST statement
- REPOSITION methods or REPOSITION statement
- GET-FIRST method or GET FIRST statement from the middle of the query
- QUERY-PREPARE method or OPEN statement with CONTAINS or multiple-index scanning
- BROWSE
* Note that opening static non-scrolling queries for sort/pre-selection will still cause a result-list under this startup parameter, because there is no other way to resolve the query.