Thanks for the question, Eric.
Asked: October 31, 2017 - 4:26 pm UTC
Last updated: November 03, 2017 - 11:34 am UTC
Version: Oracle 12c
Viewed 1000+ times
You Asked
Hi,
We'd like to use FDA on our Oracle db for its bi-temporality feature.
So far when we add a column to a table, we also perform the 'alter table T move;' + rebuild indexes, to avoid performance issues and to re-organize the row IDS.
But the 'move' command is not supported by FDA.
In order to bypass this, we are asked to
- create a new table with the new column,
- transfer the data from the initial table to the new one,
- rename the old one so that it is not used anymore, but keep it live in order to still access its FDA logs on demand,
- rename the new one to replace the old one,
- rebuild indexes and alike on the new table,
- enable FDA on the new table.
Considering all this, I see the scenario where, in a couple of years, we will end up with several versions of the same table, impacting the storage, and making the data model complex, if not unreadable. I can think of moving the 'old' tables to a dedicated table space, but this does not ease the pain anyway.
Is there another way to add columns into a FDA enabled table without duplicating the table and underlying data?
ADDITIONAL INFORMATION:
By 'performance issues' I meant row-chaining effect. We have tables containing blobs, other containing a good amount of columns. Some of these tables are interval partitioned. In the past we faced slowness due to a wrong execution plan optimization despite the stats were up to date. Our DBAs mentioned it was because of column additions, done without table re-organization.
and Chris said...
Is this answer out of date? If it is, please let us know via a Comment