By theoretically we know the index is rebuild whenever the index field is modified. But is there any way to identify the index build using any commands for the progress database.
-
What problem are you trying to solve? – Jensd Mar 15 '16 at 14:41
-
This is not for solving any problem. If any way is available that helps to understand the index rebuild clearly – Anburaja Mar 16 '16 at 04:50
2 Answers
No, there is no simple, one size fits all, command that says "you need to rebuild indexes".
You need to rebuild indexes if:
- You get an error message instructing you to do so.
- Tech support advises you to do so.
- You have performed a dump & load with the indexes deactivated.
- You wish to enable a previously deactivated index.
- Index utilization (as shown by the proutil dbanalsys report) has fallen to unacceptable levels (i.e. less than 70% with more than 1000 index blocks)
- Certain changes to code pages or word-break rules
Your assertion that an index is "rebuilt" when a field changes is incorrect. If a field is an indexed field then relevant portions of one or more indexes might also be updated to reflect the appropriate changes related to the field change -- but that is a far cry from rebuilding an index.

- 13,405
- 2
- 27
- 33
-
When i searching about index i got an info from this link http://www.geekinterview.com/question_details/44552, it says Progress creates a new index entry for a record at the first occurrence of any one of the following: -At the end of a statement in which Progress assigns values to all components of the index entry. -At the end of the closest iterating subtransaction block in which the Progress 4GL creates the record. -When Progress processes a VALIDATE statement. -When Progress releases the record from the record buffer. -At the end of the transaction in which Progress creates the record. – Anburaja Mar 16 '16 at 05:07
-
How can we identify the index entry is updated for the above scenario. – Anburaja Mar 16 '16 at 05:07
It's not entirely clear what you are looking for. There is a utility that performs an "Index Rebuild" -- it goes through all the data in a table and recreates one or more indices from scratch. But I don't think that's what you are asking about,
Are you trying to determine exactly which indices will be updated when a record is changed? That is possible; it would involve parsing the index definitions from the data dictionary to determine what fields are involved in each index. Then you would need to track which fields have been updated when you write the record. Finally, you would use that list of changed fields to figure out the affected indices.
Are you simply trying to determine whether Progress is properly updating your indices? If so, I imagine that you have some reason to worry about that. Let us know what it is, and we'll try to help you determine whether your worries are well-founded.
Do you want to see how Progress stores the index data? Then, as Tom said, a hex editor is your friend. There are also other places online where the folks who know this stuff inside and out are likely to be found; These include the PEG mailint list and the Progress Community. You might be able to get more technical details there.
Do you simply want to learn more about Progress indices? There are some white papers that discuss them -- but mostly from a standpoint of "which index is used in a query". Generally speaking the index update process is taken for granted as working properly.
If it one of these, let us know and we'll fill in the details for you. If it is something else, maybe you can take another stab at asking the question. We'll do our best to help.

- 98
- 7