查看表索引信息 需要用到dba_indexes, dba_ind_columns,查看表索引列信息,包括复合索引的脚本:
- WITH nonformat AS
- (SELECT i.index_name,i.table_name,t.column_name,t.column_position,i.uniqueness,t.table_owner
- FROM dba_indexes i, dba_ind_columns t
- WHERE i.table_name = t.table_name
- AND i.table_owner = t.table_owner
- AND i.index_name = t.index_name
- AND i.table_name = upper("t")
- --AND i.table_owner = upper("scott")
- ORDER BY t.index_name,t.column_position
- )
- SELECT nt.index_name,
- nt.table_name,
- (SELECT wmsys.wm_concat(column_name)
- FROM nonformat
- WHERE nt.index_name = index_name) column_names,
- nt.uniqueness,
- nt.table_owner
- FROM nonformat nt
- GROUP BY nt.index_name, nt.table_name, nt.uniqueness, nt.table_owner
- ORDER BY nt.index_name
索引列column_names以,分隔,需要指定表名与表的所有者信息。
翻了几页书,做一下笔记哦!
发现多余的索引有两种方式 1.根据原理来判断
考虑复合索引,根据复合索引的前缀性与选择性,分析表字段的记录分布情况,对复合索引进行整合。
2.使用Oracle的监控特性
alter index <index_name> monitoring usage; --对index_name开启监控
alter index <index_name> nomonitoring usage; --对index_name取消监控
select * from v$object_usage; --查询索引是否被使用
- SQL> desc t
- Name Type Nullable Default Comments
- -------------- ------------- -------- ------- --------
- OWNER VARCHAR2(30) Y
- OBJECT_NAME VARCHAR2(128) Y
- SUBOBJECT_NAME VARCHAR2(30) Y
- OBJECT_ID NUMBER Y
- DATA_OBJECT_ID NUMBER Y
- OBJECT_TYPE VARCHAR2(19) Y
- CREATED DATE Y
- LAST_DDL_TIME DATE Y
- TIMESTAMP VARCHAR2(19) Y
- STATUS VARCHAR2(7) Y
- TEMPORARY VARCHAR2(1) Y
- GENERATED VARCHAR2(1) Y
- SECONDARY VARCHAR2(1) Y
- SQL> create index idx_t_created on t(created);
- Index created
- SQL> alter index idx_t_created monitoring usage;
- Index altered
- SQL> alter index idx_t_created nomonitoring usage;
- Index altered
- SQL> select * from v$object_usage;
- INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
- ------------------------------ ------------------------------ ---------- ---- ------------------- -------------------
- IDX_T_CREATED T NO NO 06/27/2011 21:31:56 06/27/2011 21:32:44
Oracle 全文检索Linux下修改默认MySQL的root管理密码相关资讯 Oracle教程
- Oracle中纯数字的varchar2类型和 (07/29/2015 07:20:43)
- Oracle教程:Oracle中查看DBLink密 (07/29/2015 07:16:55)
- [Oracle] SQL*Loader 详细使用教程 (08/11/2013 21:30:36)
| - Oracle教程:Oracle中kill死锁进程 (07/29/2015 07:18:28)
- Oracle教程:ORA-25153 临时表空间 (07/29/2015 07:13:37)
- Oracle教程之管理安全和资源 (04/08/2013 11:39:32)
|
本文评论 查看全部评论 (0)