oracle怎样查询索引的使用情况

查询用户的索引
select index_name,table_name,tablespace_name,
index_type,uniqueness , status
from dba_indexes where owner=‘SCOTT‘;
查询用户的索引列
select index_name,table_name,column_name,
index_owner,table_owner
from dba_ind_columns
where table_owner=‘SCOTT‘;
查看索引的各种初始化因子
select index_name,table_name,tablespace_name,
pct_free,pct_increase,initial_extent,
next_extent, status
from dba_indexes where owner=‘SCOTT‘;

重建和维护索引

alter index scott.emp_ename_idx rebuild
pctfree 40
storage (next 300k);

查看索引segment
select segment_name,segment_type,tablespace_name,extents
from dba_segments
where owner=‘SCOTT‘
and segment_type=‘INDEX‘;

给索引添加相应的extent
alter index scott.emp_ename_idx allocate extent;

回收索引端
alter index scott.emp_ename_idx deallocate unused;
合并索引碎片
alter index scott.emp_ename_idx coalesce;

联机重建索引:
alter index scott.emp_ename_idx rebuild online;

标识索引的使用情况
1.启用索引监控
alter index emp_ename_idx monitoring usage;
2.执行相关查询
select ename,job ,sal from scott.emp
where ename like ‘C%‘;
3.查看索引是否使用
select * from v$object_usage;
4.禁用索引监控
alter index emp_ename_idx nomonitoring usage;

时间: 2024-10-31 14:40:33

oracle怎样查询索引的使用情况的相关文章

SQL Server 查询索引的使用情况

SELECT OBJECT_NAME(s.[object_id]) AS [Table Name] , i.name AS [Index Name] , i.index_id , user_updates AS [Total Writes] , user_seeks + user_scans + user_lookups AS [Total Reads] , user_updates - ( user_seeks + user_scans + user_lookups ) AS [Differe

分析oracle索引空间使用情况,以及索引是否须要重建

分析索引空间使用情况.以及索引是否须要重建 分析其它用户下的索引须要 analyze any的权限 分析索引前先查看表的大小和索引的大小,假设索引大小和表大小一样大或者大于表的大小,那么能够推断索引可能有问题.须要分析索引 查询对象大小: select owner,segment_name,segment_type,bytes/1024/1024 from dba_segments order by 4 desc 1.分析索引 SQL> analyze index AA.INDEX_AA val

分析oracle索引空间使用情况,以及索引是否需要重建

分析索引空间使用情况,以及索引是否需要重建 分析其他用户下的索引需要 analyze any的权限 分析索引前先查看表的大小和索引的大小,如果索引大小和表大小一样大或者大于表的大小,那么可以判断索引可能有问题,需要分析索引 查询对象大小: select owner,segment_name,segment_type,bytes/1024/1024 from dba_segments order by 4 desc 1.分析索引 SQL> analyze index AA.INDEX_AA val

Oracle中查询时候使index索引失效的限制条件

昨天,由于最近的项目需要进入到测试人员进行测试的阶段.因此,自己搭建好了测试环境---进行了测试.但是,奇怪的事情就发生了.以前在我自己本地开发的环境的时候却没有碰到这个问题. 由于在测试环境执行的查询的时候,不管怎么做,总是会查询失败,并且前台抛出"无法连接,请联系系统管理员"异常,开始,我就不断的跟踪这个异常, 第一:在前台找了好久  也设置了相应的response====timeout时间参数为60s.再去执行,还是查询失败.因此,否定了这个原因. 第二:我使用Debug模式去调

ORACLE Index Lookup索引访问路径总结

在ORACLE中,索引访问/查找(Index Lookup)路径有五种方式,分别为INDEX UNIQUE SCAN.INDEX RANGE SCAN.INDEX FULL SCAN.INDEX FAST FULL SCAN .INDEX SKIP SCAN.下面通过一些案例介绍.总结一下这五种索引访问路径.本文是总结这方面的知识点,所以文中一些地方参考.引用了参考资料中的部分内容.详细.具体资料可以参考官方资料Index Scans 索引唯一扫描(INDEX UNIQUE SCAN)   索引

Oracle 模糊查询方法

在这个信息量剧增的时代,如何帮助用户从海量数据中检索到想要的数据,模糊查询是必不可少的.那么在Oracle中模糊查询是如何实现的呢? 一.我们可以在where子句中使用like关键字来达到Oracle模糊查询的效果:在Where子句中,可以对datetime.char.varchar字段类型的列用Like关键字配合通配符来实现模糊查询,以下是可使用的通配符: (1)% :零或者多个字符,使用%有三种情况 字段 like '%关键字%'字段包含"关键字"的记录 字段 like '关键字%

Oracle序列和索引

序列和索引 一.序列 1.序列的概念: 序列(Sequence)是用来生成连续的整数数据的对象.它常常用来作为主键的增长列,可以升序,也可以降序. 2.创建序列: 语法:创建序列                                              语法解析: CREATE SEQUENCE sequence_name [STRAT WITH num] START WITH:从某一个整数开始,升序默认为1,降序默认为-1. [INCREMENT BY increment] I

oracle如何进行索引监控分析和优化

在生产环境.我们会发现: ① 索引表空间 I/O 非常高     ② "db file sequential read" 等待事件也比较高   这种迹象表明.整个数据库系统.索引的读写操作比较多.已经成为系统的主要瓶颈      一般的原因.大抵如下:   ① 大量SQL均采用索引   ② DML操作导致索引维护工作量暴增   ③ 频繁DML导致很多索引碎片.增加I/O开销   ④ 索引建立策略失误.走索引如同全表扫      如果.一张表字段30个.但索引竟有 50个!?   作为

Oracle中组合索引的使用详解(转)

在Oracle中可以创建组合索引,即同时包含两个或两个以上列的索引.在组合索引的使用方面,Oracle有以下特点: 1. 当使用基于规则的优化器(RBO)时,只有当组合索引的前导列出现在SQL语句的where子句中时,才会使用到该索引: 2. 在使用Oracle9i之前的基于成本的优化器(CBO)时, 只有当组合索引的前导列出现在SQL语句的where子句中时,才可能会使用到该索引,这取决于优化器计算的使用索引的成本和使用全表扫描的成本,Oracle会自动选择成本低的访问路径(请见下面的测试1和