oracle创建使用索引,查询索引状态
2011-12-06 00:01
453 查看
SQL> conn tudou/111;
//插入测试数据
SQL> insert into temp1 values('z壮','23');
SQL> insert into temp1 values('z','25');
SQL> insert into temp1 values('a','28');
SQL> insert into temp1 values('奇才','29');
SQL> insert into temp1 values('才子、','12');
SQL> insert into temp1 values('二飘落','14');
SQL> insert into temp1 values('脾用','18');
SQL> select * from temp1;
NAME AGE
------------------- ---
土土 22
z壮 23
z 25
a 28
奇才 29
才子、 12
二飘落 14
脾用 18
SQL> insert into temp1 values('fdffs','18');
SQL> insert into temp1 values('ppppp','18');
SQL> insert into temp1 values('大规模 ','13');
SQL> select * from temp1;
NAME AGE
------------------- ---
土土 22
z壮 23
z 25
a 28
奇才 29
才子、 12
二飘落 14
脾用 18
fdffs 18
ppppp 18
大规模 13
//创建索引,索引建立在name之上。
SQL> create index ix_name on temp1(name);
Index created
//监视索引
SQL> alter index ix_name monitoring usage;
Index altered
//查看索引状态,发现USED这列显示为no,说明索引尚未使用。
SQL> select * from v$object_usage;
INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
------------------------------ ------------------------------ ---------- ---- ------------------- -------------------
IX_NAME TEMP1 YES NO 02/21/2011 11:44:26
//查询字段,模糊查询的字段正是建立索引的字段。
SQL> select * from temp1 where name like '%z%';
NAME AGE
------------------- ---
z壮 23
z 25
//再次查询索引状态,发现used列还是no。说明索引在使用like模糊查询时未起作用。不过好像like '%z%';写成like 'z%'索引就会起作用。
SQL> select * from v$object_usage;
INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
------------------------------ ------------------------------ ---------- ---- ------------------- -------------------
IX_NAME TEMP1 YES NO 02/21/2011 11:44:26
//不要紧,我们这次用精确查询
SQL> select name from temp1;
NAME
-------------------
土土
z壮
z
a
奇才
才子、
二飘落
脾用
fdffs
ppppp
大规模
11 rows selected
//再次查询看发现索引还是不起作用,这说明直接查询字段名称索引不起作用。
SQL> select * from v$object_usage;
INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
------------------------------ ------------------------------ ---------- ---- ------------------- -------------------
IX_NAME TEMP1 YES NO 02/21/2011 11:44:26
//最后我们用条件查询
SQL> select * from temp1 where name ='a';
NAME AGE
------------------- ---
a 28
//OK,索引在条件查询时起作用了。这时索引才真正发挥它的作用。
SQL> select * from v$object_usage;
INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
------------------------------ ------------------------------ ---------- ---- ------------------- -------------------
IX_NAME TEMP1 YES YES 02/21/2011 11:44:26
//插入测试数据
SQL> insert into temp1 values('z壮','23');
SQL> insert into temp1 values('z','25');
SQL> insert into temp1 values('a','28');
SQL> insert into temp1 values('奇才','29');
SQL> insert into temp1 values('才子、','12');
SQL> insert into temp1 values('二飘落','14');
SQL> insert into temp1 values('脾用','18');
SQL> select * from temp1;
NAME AGE
------------------- ---
土土 22
z壮 23
z 25
a 28
奇才 29
才子、 12
二飘落 14
脾用 18
SQL> insert into temp1 values('fdffs','18');
SQL> insert into temp1 values('ppppp','18');
SQL> insert into temp1 values('大规模 ','13');
SQL> select * from temp1;
NAME AGE
------------------- ---
土土 22
z壮 23
z 25
a 28
奇才 29
才子、 12
二飘落 14
脾用 18
fdffs 18
ppppp 18
大规模 13
//创建索引,索引建立在name之上。
SQL> create index ix_name on temp1(name);
Index created
//监视索引
SQL> alter index ix_name monitoring usage;
Index altered
//查看索引状态,发现USED这列显示为no,说明索引尚未使用。
SQL> select * from v$object_usage;
INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
------------------------------ ------------------------------ ---------- ---- ------------------- -------------------
IX_NAME TEMP1 YES NO 02/21/2011 11:44:26
//查询字段,模糊查询的字段正是建立索引的字段。
SQL> select * from temp1 where name like '%z%';
NAME AGE
------------------- ---
z壮 23
z 25
//再次查询索引状态,发现used列还是no。说明索引在使用like模糊查询时未起作用。不过好像like '%z%';写成like 'z%'索引就会起作用。
SQL> select * from v$object_usage;
INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
------------------------------ ------------------------------ ---------- ---- ------------------- -------------------
IX_NAME TEMP1 YES NO 02/21/2011 11:44:26
//不要紧,我们这次用精确查询
SQL> select name from temp1;
NAME
-------------------
土土
z壮
z
a
奇才
才子、
二飘落
脾用
fdffs
ppppp
大规模
11 rows selected
//再次查询看发现索引还是不起作用,这说明直接查询字段名称索引不起作用。
SQL> select * from v$object_usage;
INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
------------------------------ ------------------------------ ---------- ---- ------------------- -------------------
IX_NAME TEMP1 YES NO 02/21/2011 11:44:26
//最后我们用条件查询
SQL> select * from temp1 where name ='a';
NAME AGE
------------------- ---
a 28
//OK,索引在条件查询时起作用了。这时索引才真正发挥它的作用。
SQL> select * from v$object_usage;
INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
------------------------------ ------------------------------ ---------- ---- ------------------- -------------------
IX_NAME TEMP1 YES YES 02/21/2011 11:44:26
相关文章推荐
- oracle 创建、使用索引和判断索引是否被使用
- oracle使用了索引但是查询性能没有改善(oracle的索引陷阱)
- Oracle 的 索 引 的 创 建 :索引的创建方法,使用场合及建议
- Lucene学习之一:使用lucene为数据库表创建索引,并按关键字查询
- Oracle使用并发创建索引
- 使用org.apache.lucene创建和查询索引核心代码详解
- solrj的使用,环境准备,工程搭建,索引创建,添加\修改索引,删除索引,查询
- ORACLE查询或删除时指定使用索引的写法
- Oracle 的 索 引 的 创 建 :索引的创建方法,使用场合及建议
- Day59-Oracle03 - 创建表空间、创建表(子查询创建表)、表的约束、事务、数据库对象(视图、序列、索引、同义词)、PLSQL编程、(if,循环)、数据的导入导出备份
- Oracle sql 调优:使用虚拟索引在生产环境测试创建索引对数据库性能的影响
- 使用org.apache.lucene创建和查询索引核心代码详解
- Oracle创建索引,修改索引,使用同义词
- oracle在组合索引上,只使用部分列进行查询(查询时必须包含前导列,否则会走全表扫描)
- oracle使用了索引但是查询性能没有改善(oracle的索引陷阱)
- oracle创建索引 查看索引状态
- oracle使用了索引但是查询性能没有改善(oracle的索引陷阱) 【转】
- [转]Oracle 修改或者删除临时表 ORA-14452: 试图创建, 更改或删除正在使用的临时表中的索引
- ES Java API - 查询索引的mapping、status状态、索引创建时间
- oracle怎样查询索引的使用情况