Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Feedback on query for monitoring index usage in 9i

RE: Feedback on query for monitoring index usage in 9i

From: <jo_holvoet_at_amis.com>
Date: Thu, 29 Jul 2004 10:19:00 +0200
Message-id: <OF95ACBC31.3707AB48-ONC1256EE0.002D6ACC@eu.amis.com>


Rich,

metalink Note:160712.1 does much the same thing (it just takes the clause "where io.owner# = userenv('SCHEMAID')" out of the definition of v$object_usage to create a new view that is no longer restricted to the current schema).

mvg/regards

Jo

"Jesse, Rich" <Rich.Jesse_at_quadtechworld.com> Sent by: oracle-l-bounce_at_freelists.org
07/28/2004 19:25
Please respond to oracle-l  

        To:     oracle-l_at_freelists.org
        cc: 
        Subject:        RE: Feedback on query for monitoring index usage in 9i


<sigh> Try the HTML-ized query:

SELECT u.name "OWNER",

    io.name "INDEX_NAME",
    t.name "TABLE_NAME",
    DECODE(bitand(i.flags, 65536), 0, 'NO', 'YES') "MONITORING",     DECODE(bitand(NVL(ou.flags,0), 1), 0, 'NO', 'YES') "USED",     ou.start_monitoring "START_MONITORING",     ou.end_monitoring "END_MONITORING"
FROM sys.obj$ io, sys.obj$ t, sys.ind$ i, sys.object_usage ou, sys.user$ u WHERE t.obj# = i.bo#

    AND io.owner# = u.user#
    AND io.obj# = i.obj#
    AND u.name NOT IN ('SYS','SYSTEM')
    AND i.obj# = ou.obj#(+);

Rich

-----Original Message-----

From: oracle-l-bounce_at_freelists.org
[ mailto:oracle-l-bounce_at_freelists.org]
Sent: Wednesday, July 28, 2004 12:18 PM
To: ORACLE-L (E-mail)
Subject: Feedback on query for monitoring index usage in 9i

Hey all,

Now that we've upgraded to 9.2.0.5.0, I'm looking to see which indexes = are not being used over time, thanks to the new feature. Trying to = monitor this is a pain using the V$OBJECT_USAGE view (which itself is an = oddity -- where's the V_$?) because it'll only show indexes in the = current schema that are already being monitored. I'd like to see = indexes for the whole DB so I can see which ones are not being monitored = as well. So I came up with this SQueaL, based on V$OBJECT_USAGE:

SELECT u.name "OWNER",

        io.name "INDEX_NAME",
        t.name "TABLE_NAME",
        DECODE(bitand(i.flags, 65536), 0, 'NO', 'YES') "MONITORING",
        DECODE(bitand(NVL(ou.flags,0), 1), 0, 'NO', 'YES') "USED",
        ou.start_monitoring "START_MONITORING",
        ou.end_monitoring "END_MONITORING"
FROM sys.obj$ io, sys.obj$ t, sys.ind$ i, sys.object_usage ou, sys.user$ = u
WHERE t.obj# =3D i.bo#
        AND io.owner# =3D u.user#
        AND io.obj# =3D i.obj#
        AND u.name NOT IN ('SYS','SYSTEM')
        AND i.obj# =3D ou.obj#(+);

The output looks to be correct on our test DBs, but I'd like to get some = feedback from y'all as to any possible gotchas.

Thanks!
Rich

Rich Jesse                        System/Database Administrator
rich.jesse_at_quadtechworld.com      QuadTech, Sussex, WI USA 



----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com

To unsubscribe send email to: oracle-l-request_at_freelists.org put 'unsubscribe' in the subject line.
--

Archives are at http://www.freelists.org/archives/oracle-l/ FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html


Please see the official ORACLE-L FAQ: http://www.orafaq.com

To unsubscribe send email to: oracle-l-request_at_freelists.org put 'unsubscribe' in the subject line.
--

Archives are at http://www.freelists.org/archives/oracle-l/ FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
Received on Thu Jul 29 2004 - 03:15:50 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US