oracle创建使用索引,查询索引状态

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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值