Oracle 强制索引 增加搜索效率

Oracle 强制索引 增加搜索效率

  • 通用格式
  • 执行计划检查

通用格式

select 后边追加

/*+ index(表名(或别名 索引名)*/ 

例如

select /*+ index(b IDX_KC24_AAC001)*/akb020,--定点医疗机构编码
       akc190,--住院号(门诊号)
       aae072,--单据号
       aka135 bka135,--交易类型
       to_number(to_char(aae040, 'yyyy')) AAE001,--结算年度
       aac001,--个人编号
       aka130,--医疗类别
       akc021,--医疗人员类别
       bkc021,--医疗待遇类别
       aab001,--参保组织编号
       aae040 ake010,--结算日期
       baa084,--基金类别(医疗)
       akc197 bkc197,--报销标志
       akc336 BKE001,--住院床日
       akc264,--医疗费总额
       akc421 BKC198,--前次是否有中途结算
       akc344 BKC199,--连续住院标志
       akc421 BKC200,--中途结算标志
       '' BAC202,--跨年报销标志
       akc299 BKC203,--欠费结算标志
       '' BKC204,--跨月退费标志
       akc266 AKC266,--帐户冲减日期
       akc267 AKC267,--帐户冲减标志
       aae430 BKB030,--月结流水号
       '' BKC335,--本次结算对应月结算人次
       akc338 BKC328,--审核状态
        CASE
         WHEN nvl(AKC255,0)<>0 THEN
          '账户支付'
         ELSE
         ''
       END  BKC329,--帐户支付标志
       CASE
         WHEN akc021 LIKE '9%' THEN
          '61'
         ELSE
          '31'
       END AAE140,--险种类型
       '' BKA628,--特病分类
       (select akc020 from lzsi.ac01 a where a.aac001 = b.aac001) AAZ500,--社保卡号
       '' BKA627,--危重病标志
       (select aac002 from lzsi.ac01 a where a.aac001 = b.aac001) AAE135,--公民身份号码
       (select aac003 from lzsi.ac01 a where a.aac001 = b.aac001) AAC003,--姓名
       aae100 BKE022--数据状态:1,正常
  from lzsi.kc24_table b
 where aae100 = '1'

执行计划检查

在PLSQL中,"F5"进行查看执行计划
如果发现有“ TABLE ACCESS BY INDEX ROWID ”即,表示数据通过索引获得。
通过objectName可以查看是走的哪条索引

Oracle 强制索引 增加搜索效率_第1张图片

你可能感兴趣的:(oracle)