alter index index_name monitoring usage;
Esta vista nos brinda info de aquellos indices monitoreados pertenecientes al propio schema con el cual se está corriendo la consulta.
SQL> select index_name, table_name, monitoring, used from v$object_usage;
INDEX_NAME TABLE_NAME MONITORING USED
------------------------------ ------------------------------ ---------- ----
T1_IDX1 T1 YES NO
Si queremos ver información de todos los indices monitoreados en la base de datos, o si simplemente necesitamos verificar uno o varios owners en particular.
Podemos utilizar la siguiente consulta:
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 in ('<OWNER>')
and
i.obj# = ou.obj#(+);
---------- -------------
----------------- ---------- ----
------------------- -------------------
TST1 T1_IDX1 T1 no
yes 11/06/2018 13:09:24 11/06/2018 13:14:04
Nota: Lógicamente necesitaremos los privilegios necesarios de SELECT para acceder a las tablas de "sys" utilizadas y que la consulta se ejecute correctamente.
Nice article!
ResponderEliminar