问题的起源是一条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
能直接出数据
效能相差巨大