如何优化以下的一个sql语句

表结构如下:

-- Create table

create table TEST

(

  OBJECT_ID   VARCHAR2(15) not null,

  OBJECT_NAME VARCHAR2(128),

  OBJECT_TYPE NUMBER

)

tablespace SYSTEM

  pctfree 10

  pctused 40

  initrans 1

  maxtrans 255

  storage

  (

    initial 64K

    minextents 1

    maxextents unlimited

  );

-- Create/Recreate primary, unique and foreign key constraints 

alter table TEST

  add constraint PK_OBJECT_ID primary key (OBJECT_ID)

  using index 

  tablespace SYSTEM

  pctfree 10

  initrans 2

  maxtrans 255

  storage

  (

    initial 64K

    minextents 1

    maxextents unlimited

  );

-- Create/Recreate indexes 

create index OBJECT_ID_INDEX on TEST (OBJECT_ID DESC)

  tablespace SYSTEM

  pctfree 10

  initrans 2

  maxtrans 255

  storage

  (

    initial 64K

    minextents 1

    maxextents unlimited

  );

create index OBJECT_TYPE on TEST (OBJECT_TYPE)

  tablespace SYSTEM

  pctfree 10

  initrans 2

  maxtrans 255

  storage

  (

    initial 64K

    minextents 1

    maxextents unlimited

  );

create index OBJECT_TYPE_IND on TEST (OBJECT_TYPE, OBJECT_ID)

  tablespace SYSTEM

  pctfree 10

  initrans 2

  maxtrans 255

  storage

  (

    initial 64K

    minextents 1

    maxextents unlimited

  );
表的记录大概有10万-500万条的记录:
需要执行的sql语句为:
select *

  from (select * from test t where object_type = 3 order by object_id)

 where rownum < 10
通过观察执行计划为全表扫描,执行的时间大概在2秒以上,并且尝试过使用索引提示也没有作用,请各位高手帮忙看看。
如果我在object_id 上建立一个desc的索引,执行时间大概在1秒以内。
另外:
   如果我把object_id 为number类型的话,则查询在0.0n秒。
请各位帮忙看看可以在什么地方可以优化。
如果在生产环境的话,object_id 的类型是很难去变更的,因为要考虑到应用的兼用性是否有问题。
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值