find out index the table is using

marrowyung
marrowyung used Ask the Experts™
on
Dear all,

Any way to find out all indexes of the Oracle tables so as to find out any index which is no use any more and therefore the candidates index to drop ?
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Guy Hengel [angelIII / a3]Billing Engineer
Most Valuable Expert 2014
Top Expert 2009

Commented:
if you drop a table, all it's related indexes will be dropped also.
apart from that, you can check the USER_INDEXES, ALL_INDEXES or DBA_INDEXES to see the indexes on which table they are.
You need to set monitoring:
ALTER INDEX {index name}  MONITORING USAGE;

Open in new window

And then query v$object_usage
:p
marrowyungSenior Technical architecture (Data)

Author

Commented:
you mean

ALTER INDEX {index name}  MONITORING USAGE; 

Open in new window


is to monitor if the index still using ?

"And then query v$object_usage"

select * from v$object_usage where what ?
Ensure you’re charging the right price for your IT

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!

1) Connect as user schema owner of the index and execute the 'ALTER,,MONITORING' command.
2) And yes, monitoring on index(es) will start monitoring if index is being used.
3) To check if index has been used, select * from v$object_usage where . . . . . .
SQL> desc  v$object_usage
 Name                    Null?    Type
 ----------------------- -------- ----------------
 INDEX_NAME              NOT NULL VARCHAR2(30)
 TABLE_NAME              NOT NULL VARCHAR2(30)
 MONITORING                       VARCHAR2(3)
 USED                             VARCHAR2(3)
 START_MONITORING                 VARCHAR2(19)
 END_MONITORING                   VARCHAR2(19)

Open in new window

idx-not-used.sql
Geert GOracle dba
Top Expert 2009

Commented:
be careful with dropping indexes like that
certain queries are only used in year-end calculations
marrowyungSenior Technical architecture (Data)

Author

Commented:
"certain queries are only used in year-end calculations "

but not the index. should be all right? or what are you concerning about ?

from your result (screenshot) what it tells ?
What Geert means is to be careful which indexes you drop because they could be used only once a year in year-end calculations.

That is one of the reasons I include in my scripts the "age" of the index, in order to verify that "recently" created indexes are being used.

Good Luck!
marrowyungSenior Technical architecture (Data)

Author

Commented:
" they could be used only once a year in year-end calculations."

so if I drop that the year-end calculation will be very slow  ?

I will consult the developer what it use before dropping it.
Guy Hengel [angelIII / a3]Billing Engineer
Most Valuable Expert 2014
Top Expert 2009

Commented:
>so if I drop that the year-end calculation will be very slow  ?
exactly.
marrowyungSenior Technical architecture (Data)

Author

Commented:
but just only at that time, I can say server is busying! ahaha
marrowyungSenior Technical architecture (Data)

Author

Commented:
ok, I may re active it if I need
marrowyungSenior Technical architecture (Data)

Author

Commented:
ok,yeah, might come back and re active it if I need.
marrowyungSenior Technical architecture (Data)

Author

Commented:
one thing, how can I find out the pass question, it seems the old EE  is better on this!
Steve WalesSenior Database Administrator

Commented:
This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial