SQL优化案例-自定义函数索引(五)
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,SQL 文本如下,表本身很小,走全表扫描也很快,但因业务重要性,要求尽可能缩短查询时间(为保证客户隐私,已经将注释和文字部分去掉):SELECT MERCHCODE AS R_MERCHCODE,
千家信息网最后更新 2024年11月23日SQL优化案例-自定义函数索引(五)
SQL 文本如下,表本身很小,走全表扫描也很快,但因业务重要性,要求尽可能缩短查询时间(为保证客户隐私,已经将注释和文字部分去掉):
SELECT MERCHCODE AS R_MERCHCODE, TRANDATE, TRANTIME, TRANTYPE AS TRANSTYPE, TRACENO, POSID AS R_POSID, ACCOUNT AS R_CARDNO, AMT, FEE, NVL(RESERVED1,'N') BORDERCARDBUSIFLAG, CASE WHEN I.BANCSRETFLAG='0000' THEN '1' WHEN I.BANCSRETFLAG='9999' THEN'0' ELSE '2' END AS RETURNCODEFROM IC_MERCHTRANSDETAIL_428 IWHERE GETACCTNO(ACTSTLACCTNO)=GETACCTNO('14250000000454865') AND ROWNUM < 500;
执行计划如下:
可以看到谓词信息是客户号,可以确定此列选择性非常高,非常适合建立索引。
CREATE INDEX IDX_GETACCTNO ON IC_MERCHTRANSDETAIL_428 (GETACCTNO(ACTSTLACCTNO)) PARALLEL 10 TABLESPACE REPT *ERROR at line 1:ORA-30553: The function is not deterministic
确定函数本身不会受到不确定值的影响,创建函数索引。
加上 deterministic 并且取别名,查看函数创建语句:
CREATE OR REPLACE FUNCTION GETACCTNOCY (acct varchar2) return varchar2 DETERMINISTICistmpacct varchar2(40);st_res varchar2(40); --st_res:=tmpacctbegintmpacct:='';st_res :='';IF (length(trim(acct))=16) THENBEGIN SELECT ACCOUNT INTO tmpacct FROM LINK_L WHERE LINK_L.CARD=LPAD(trim(acct),20,0) AND ISO_TYPE='1' AND CATEGORY='0';EXCEPTION WHEN NO_DATA_FOUND THEN tmpacct:=TRIM(ACCT);END;END IF;IF(length(trim(acct))>17) THEN BEGIN SELECT zh INTO tmpacct FROM load_zhmap WHERE jzh=trim(acct); EXCEPTION WHEN NO_DATA_FOUND THEN tmpacct:=''; END;END IF; IF(length(trim(acct))=17) THEN tmpacct:=substr(acct,1,16); END IF;st_res:=tmpacct;return st_res;EXCEPTIONWHEN OTHERS THENreturn '';END;
创建索引:
CREATE INDEX IDX_GETACCTNO ON IC_MERCHTRANSDETAIL_428 (GETACCTNOCY(ACTSTLACCTNO)) TABLESPACE TBSIDX;
创建索引后的执行计划如下:
案例较为简单,希望可以帮助到大家。
| 作者简介
姚崇·沃趣科技高级数据库技术专家
熟悉Oracle数据库内部机制,丰富的数据库及RAC集群层故障诊断、性能调优、OWI、数据库备份恢复及迁移经验。
索引
数据
数据库
函数
客户
案例
重要
高级
专家
业务
作者
信息
别名
备份
尽可能
很快
性能
技术
故障
文字
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
美国主机服务器租用商
服务器 部署方案
加载远程管理服务器
网络安全前沿技术
互联网和新科技的发展纯物理
GOOGLE识图软件开发
金山区网络技术转让推荐咨询
专科计算机网络技术工资多少
建筑工程技术计算机网络技术
易水寒捏脸数据库怎么导入
软件开发和微软有关系吗
谷歌浏览器支持服务器系统么
服务器管理器.msu
竞技世界北京网络技术公司电话
吉安服务器机柜价格
关于网络安全演讲大赛策划案
龙维网络安全
web服务器支持线数
ft中文数据库
北京宜天信达软件开发公司
工业行业网络安全工作要点
网络安全法于好久实施
校园网络安全黑板报语文主题
数据库查看表内容
游戏装备数据库表设计
什么网站服务器配置好
58同城服务器有哪几个
未来之役那个服务器老外多
erp分销软件开发公司
大型三维建模软件开发工具包