You have altered an index supporting a constraint to be invisible on a large data warehouse table in an X5
Database Machine.
Which two statements are true?
A.
You might retain the index, and leave it as invisible, and the constraint will still be recognized and enforced.
B.
You must retain the index and make it visible again for the constraint to be recognized and enforced.
C.
You must retain the index and set the constraint to DISABLE NOVALIDATE RELY for the constraint to be
recognized.
D.
You might drop the index and use a constraint with the DISABLE NOVALIDATE RELY flags for the
constraint to be recognized.
E.
You might drop the index and make the constraint invisible, for the constraint to be recognized and
enforced.
Explanation:
B: With making indexes invisible, we can easily check whether indexes are useful without having to drop (and in case recreate) them actually. While this may be of interest for “ordinary” Oracle Databases already, it is particular a useful feature for Exadata where we expect some conventional indexes to become obsolete after a migration.
C: DISABLE NOVALIDATE RELY means: “I don’t want an index and constraint checking to slow down my batch data loading into datawarehouse, but the optimizer can RELY on my data loading routine and assume this constraint is enforced by other mechanism”. This information can greatly help optimizer to use correct materialized view when rewriting queries. So if you don’t use materialized views for query rewrite then you can put RELY for all your constraints (or NORELY for all your constraints) and forget about it.