首页 > 数据库 >Debug - Oracle索引未生效的问题

Debug - Oracle索引未生效的问题

时间:2022-09-26 18:36:20浏览次数:45  
标签:FICC Oracle 索引 sql Debug IB VALUATION select BOND

 

问题描述

2022-09-26T14:13:02,065 [ComparableSecurity-thread-1] INFO  com.huatai.nats.api.impl.client.Client - Query done(total=6), sql=select * from FICC_DWODS.FICC_RDS_BOND_VALUATION where TRADE_DATE in (20220919,20220920,20220921,20220922,20220923,20220926) and HEADS_SECURITY_ID in ('2105778.IB') and VALUATION_SOURCE  IN ('chinabond')
2022-09-26T14:13:02,065 [ComparableSecurity-thread-1] INFO  com.huatai.quant.utils.ComparableSecurityUtil - Query out [6] results, using sql query = [select * from FICC_DWODS.FICC_RDS_BOND_VALUATION where TRADE_DATE in (20220919,20220920,20220921,20220922,20220923,20220926) and HEADS_SECURITY_ID in ('2105778.IB') and VALUATION_SOURCE  IN ('chinabond')]
2022-09-26T14:15:24,367 [ComparableSecurity-thread-1] INFO  com.huatai.nats.api.impl.client.Client - Query done(total=18), sql=select * from FICC_DWODS.FICC_RDS_BOND_VALUATION where TRADE_DATE in (20220919,20220920,20220921,20220922,20220923,20220926) and HEADS_SECURITY_ID in ('2171116.IB' ,'2171266.IB' ,'2171269.IB') and VALUATION_SOURCE  IN ('chinabond')
2022-09-26T14:15:24,367 [ComparableSecurity-thread-1] INFO  com.huatai.quant.utils.ComparableSecurityUtil - Query out [18] results, using sql query = [select * from FICC_DWODS.FICC_RDS_BOND_VALUATION where TRADE_DATE in (20220919,20220920,20220921,20220922,20220923,20220926) and HEADS_SECURITY_ID in ('2171116.IB' ,'2171266.IB' ,'2171269.IB') and VALUATION_SOURCE  IN ('chinabond')]

 

前后两个请求语句相差的时间是,2分22秒:

2022-09-26T14:13:02,065
2022-09-26T14:15:24,367

 

这是非常不正常的,查询【18】条数据就要2分22秒

但其实该表 FICC_DWODS.FICC_RDS_BOND_VALUATION 已经按照该sql语句的condition顺序建了索引

 

问题分析

该索引已经存在,但不知道为何没有起效。

 

 

通过下方sql分析(两个sql要在一个界面里面,分别执行):

Explain plan FOR select * from FICC_DWODS.FICC_RDS_BOND_VALUATION where 
TRADE_DATE in (20220919,20220920,20220921,20220922,20220923,20220926) 
and HEADS_SECURITY_ID in ('2171116.IB' ,'2171266.IB' ,'2171269.IB') 
and VALUATION_SOURCE  IN ('chinabond');

--查看索引使用明细
select plan_table_output from TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));

 

发现这里是ACCESS FULL,说明是查询了全表。

里面有TO_NUMBER()去转换了tradeDate的格式,怀疑是因为格式问题未能走索引。

 

 

将原sql修改后,再次尝试分析是否走索引(两个sql要在一个界面里面,分别执行):

Explain plan FOR select * from FICC_DWODS.FICC_RDS_BOND_VALUATION where 
TRADE_DATE in ('20220919','20220920','20220921','20220922','20220923','20220926') 
and HEADS_SECURITY_ID in ('2171116.IB' ,'2171266.IB' ,'2171269.IB') 
and VALUATION_SOURCE  IN ('chinabond');

--查看索引使用明细
select plan_table_output from TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));

 

修改后,说明走了索引!!!

 

 

参考

oracle查看执行计划explain plan FOR:https://www.jianshu.com/p/bd4fe6ac3925

 

标签:FICC,Oracle,索引,sql,Debug,IB,VALUATION,select,BOND
From: https://www.cnblogs.com/frankcui/p/16731939.html

相关文章

  • oracle 显示开启事务
    oracle在sqlplus命令里执行dml语句会默认隐式开启一个事务。显示声明事务:1. settransactionreadonly;所有SELECT语句,其结果均为同一个时间点一致,直至显式地发布了......
  • Oracle存储过程中,调用另外一个存储过程打印日志
    最近在项目中维护一个三方写的老破旧项目,居然在项目中大量用存储过程书写逻辑,在维护过程中不停的要去查看阅读对方写的存储过程是一个什么逻辑,使用DataGrip的断点功能尝试......
  • Oracle常用函数
    目录Oracle常用函数1、时间函数1.1、获取当月第一天1.2、当月最后一天2、切割函数substrOracle常用函数1、时间函数1.1、获取当月第一天selectto_char(trunc(add_mon......
  • 【Python】【Flask】【字符串索引】计算人民币与美元的相互计算
    目录简介PythonCode导包设置首页计算的接口问题0:设置请求方式问题1:关于接收数据可能存在的问题问题2:返回结果启动完整代码HTMLCode问题分析分析:获取下拉列表框的选中值分......
  • [Oracle] LeetCode 32 Longest Valid Parentheses 思维
    Givenastringcontainingjustthecharacters'('and')',findthelengthofthelongestvalid(well-formed)parenthesessubstring.Solution不妨把左括号记为......
  • Qt 开发应用程序Debug与Release设置
    一般来说,release版的可执行程序在体积上比起debug版要小很多(数倍甚至数十倍的差异),而且由于剥离了许多调试信息及符号等运行效率相对也高一些。然而在使用Qt开发中偶尔......
  • Oracle 判断正负数函数 sign
    Oracle判断正负数函数signsign(数值)。正数大于0返回1,等于0返回0,负数小于0返回-1;selectsign(-15.5),sign(0),sign(15.5)fromdual;此函数可以判断正负数数值判断......
  • MySQL索引相关的问题
    关系型数据库相关的大部分问题,都要往如何减少IO次数以及如何减少随机IO次数上想,这也是关系数据库设计时考虑的一个目标。为什么索引使用B+树实际上不管你使用什么结构,B......
  • oracle数据库用户
    一、系统用户sys和system的区别1、存储的数据的重要性不同【最重要的区别】【sys】所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行......
  • MySQL学习(4)---MySQL索引
    ps:没有特殊说明,此随笔中默认采用innoDB存储引擎中的索引,且索引都是指B+树(多路平衡搜索树)结构组织的索引。其中聚集索引、复合索引、前缀索引、唯一索引默认都是使用B+树,统......