[Progress Communities] [Progress OpenEdge ABL] Forum Post: RE: Adding a field to a Unique primary index

Status
Not open for further replies.
D

dbeavon

Guest
>> Looks like i first need to drop the primary index and then add the new primary index. Yes. We had to do this recently: documentation.progress.com/.../index.html "To change the component fields of an index, such as ascending or descending order or uniqueness, you must delete and then recreate the index." I'm assuming you are asking because the table is large? How is the point about "recid" relevant to an index change? Hopefully you aren't permanently storing that, or using it for Pro2SQL , but even if you are, I believe it should survive an index change. I would test. My recent experience with reindexing a large table was eye-opening, and reminded me that the OE database must be managed in *two* totally different ways depending on the size of the tables. Most conventional DDL operations in Progress are single-threaded and limited by the CPU speed of a single core. So after your tables get to be large (~100 million rows or so) then they become extremely hard to manage in Progress, simply because of the limitations in the database technology. IE. even if there is plenty of additional I/O and CPU capacity on a server, you will not be able to get the DDL operations to run any faster than it would on a single-core server (if such a thing even existed anymore). For these very large tables you will need to switch your database management strategies and start looking into the "proutil" commands. These are less convenient approaches for managing the schema, but Progress has them well-documented in the KB, under keywords like "fastest" way to manage indexes. See knowledgebase.progress.com/.../P11656 The main problem with using "proutil" is that you are required to make some compromises (database offline, replication disabled and needs to be re-established afterwards, etc).

Continue reading...
 
Status
Not open for further replies.
Top