raw类型的使用问题

问题的起源是一条sql语句执行时用不了索引

select * from  GMS_IVC.IVC_STOCK_TRANSACTION  where TRANSACTION_ID = '8AE587D11C2B178D011C2B254F912740'

 

计划

 

SELECT STATEMENT, GOAL = ALL_ROWS   耗费=20036 基数=1 字节=215 IO 耗费=19932 CPU 耗费=1940229730 
 PARTITION RANGE ALL   耗费=20036 基数=1 字节=215 IO 耗费=19932 CPU 耗费=1940229730 
  TABLE ACCESS FULL 对象所有者=GMS_IVC 对象名称=IVC_STOCK_TRANSACTION 耗费=20036 基数=1 字节=215 IO 耗费=19932 CPU 耗费=1940229730
 

 

执行了约40s左右才出记录

 

 

后发现这种写法是不正确的

应该添加函数如下

select * from  GMS_IVC.IVC_STOCK_TRANSACTION  where TRANSACTION_ID =hextoraw( '8AE587D11C2B178D011C2B254F912740')

 

计划

SELECT STATEMENT, GOAL = ALL_ROWS   耗费=3 基数=1 字节=215 IO 耗费=3 CPU 耗费=23724 
 TABLE ACCESS BY GLOBAL INDEX ROWID 对象所有者=GMS_IVC 对象名称=IVC_STOCK_TRANSACTION 耗费=3 基数=1 字节=215 IO 耗费=3 CPU 耗费=23724 
  INDEX UNIQUE SCAN 对象所有者=GMS_IVC 对象名称=IVC_STOCK_TRANSACTION_PK 耗费=2 基数=1  IO 耗费=2 CPU 耗费=15293 

 

能直接出数据

 

效能相差巨大

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值