Question

My question regards the situation were tablespace used for primary key index differs from tablespace used for the table itself. Will Oracle use this index or it becomes unusable?

Because when i tried to import the schema to Oracle that contains that table. Oracle complained with warning saying that index for this primary key is unusable. I've fixed the schema by change tablespace for primary key index, exported it again and it imported into database without warnings.

Does this means that primary key index tablespace must be always the same as the tablespace of the table itself? Or is it true for any kind of index (column index for example)?

Does this rule apply also for DB2?

Was it helpful?

Solution

Storing indexes and data in different tablespaces is perfectly acceptable. What happens when you do a:

alter index index_name rebuild;

Is the index still unusable after that? If not, check your import parameters on the table. For example, SQL*Loader can invalidate indexes with direct path loads (this is just a guess, you don't mention how you loaded the data).

If the index is still unusable, check for data anomalies, especially duplicate keys. Hope you fix it!

OTHER TIPS

What Martin said is fine. However, there is no real need to separate the tablespaces. What you can do, to avoid tablespace errors on import (assuming you're using export/import and not datapump) is to create the user with a default tablespace that exists. Then import just the database and then add the indexes and constraints.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top