首页 > 数据库 >oracle 表查询变慢的原因-项目

oracle 表查询变慢的原因-项目

时间:2023-07-03 16:36:04浏览次数:40  
标签:eod 变慢 tradedate 查询 ACCESS pkg oracle closedate SEL


 

1)     

 above sql did full tablescan

it executed 37 time

and took around 10 min

DELETE FROM PF_LIQUDATION_DETAILS_EOD WHERE PORTFOLIOID = :B2 AND ASOFDATE = :B1

 

We need to look at the indexes for these PF_* tables and add indexes so that we can reduce the EOD calculations time big time

 

 

2)    Check the below SQL and it’s Execution Plan. This is what we use in calculating the “Sale Activity” tab in EOD Calculations. It’s doing lot of FULL TABLE SCANS which is not good at all.

 

We run this for 35+ portfolios and if we can fine tune this, it reduces our time big time

 

 

 

select a.swaptradeid, a.tradedate selltradedate, a.settledate sellsettledate, a.counterpartycd, a.quantity sellquantity, a.price sellprice, b.facilitydesc facilitytype, b.loanxid, b.facilitycusip, c.issuername, d.CURRPERIODEFFECTIVESTARTDATE, e.liquidationamount, e.realizedgain, f.positionid, f.tradedate buytradedate, f.settledate buysettledate, f.purchaseprice, f.commitmentamount, g.TRSSETTLEDDATE, a.tradeccy, d.currency, pkg_asset_eod.getfxrate(a.tradeccy, d.currency, f.tradedate) init_spotrate, pkg_asset_eod.getfxrate(a.tradeccy, d.currency, a.settledate) settle_spotrate, pkg_asset_eod.getlastfxrate(a.tradeccy, d.currency) latest_spotrate, pkg_asset_eod.getfxrate(a.tradeccy, d.currency, a.tradedate) sell_spotrate

from swaptrade_eod a, loanfacility_eod b, loandeal_eod c, pvtrs_eod d, ptrsliquidation_eod e, ptrsposition_eod f, TradeExtend g

where a.ptrsid = :1 and a.tradeside = 'S' and a.loanfacilityid = b.loanfacilityid and b.loandealid = c.loandealid and a.ptrsid = d.pvtrsid and a.swaptradeid = e.SELLTRADEID(+) and e.positionid = f.positionid (+) and a.closedate = b.closedate and a.closedate = c.closedate and a.closedate = d.closedate and a.closedate = e.closedate(+) and e.closedate = f.closedate(+) and a.closedate = pkg_eod_util.getlastclosedate() and a.LOANTRADEID = g.LOANTRADEID (+) order by a.tradedate asc, a.tradeside asc, a.lqtticketid asc, e.positionid asc

 

 

SELECT STATEMENT

17

0

0

0

23,871

100

0:0:0

SORT ORDER BY

16

12,266

3.217M

3.438M

23,871

1

0:4:47

SEL$1

HASH JOIN RIGHT OUTER

15

12,266

3.217M

0

23,141

1

0:4:38

TABLE ACCESS FULL

TRADEEXTEND

1

54,511

851.734K

0

112

2

0:0:2

SEL$1 / G@SEL$1

HASH JOIN

14

12,266

3.03M

0

23,027

1

0:4:37

TABLE ACCESS BY INDEX ROWID

PVTRS_EOD

3

22

550

0

25

0

0:0:1

SEL$1 / D@SEL$1

INDEX SKIP SCAN

SYS_C00314828

2

22

0

0

19

0

0:0:1

SEL$1 / D@SEL$1

HASH JOIN

13

12,267

2.738M

2.469M

23,002

1

0:4:37

HASH JOIN OUTER

11

12,318

2.326M

0

22,308

1

0:4:28

HASH JOIN OUTER

9

12,318

1.821M

0

19,552

1

0:3:55

HASH JOIN

7

3,863

464.013K

0

6,828

0

0:1:22

TABLE ACCESS BY INDEX ROWID

SWAPTRADE_EOD

5

3,863

294.252K

0

5,911

0

0:1:11

SEL$1 / A@SEL$1

INDEX RANGE SCAN

SYS_C00314931

4

93,064

0

0

514

0

0:0:7

SEL$1 / A@SEL$1

TABLE ACCESS FULL

LOANFACILITY_EOD

6

95,855

4.114M

0

915

1

0:0:11

SEL$1 / B@SEL$1

TABLE ACCESS FULL

PTRSLIQUIDATION_EOD

8

4,654,086

142.031M

0

12,675

2

0:2:33

SEL$1 / E@SEL$1

TABLE ACCESS FULL

PTRSPOSITION_EOD

10

542,466

22.245M

0

2,750

1

0:0:33

SEL$1 / F@SEL$1

TABLE ACCESS FULL

 

 

标签:eod,变慢,tradedate,查询,ACCESS,pkg,oracle,closedate,SEL
From: https://blog.51cto.com/u_16174476/6612704

相关文章

  • 记录一下Oracle排序 将空值排在最后面
    select*fromtableorderbyxxx(字段)desc 今天在写Oracle排序的时候突然发现,Oracle默认将null值放最上面使用nullsfirst或者nullslast语法Nullsfirst和nullslast是OracleOrderby支持的语法如果Orderby中指定了表达式Nullsfirst则表示null值的记录将排在最前( ......
  • 为什么LntonMedia视频平台按时间调用录像,但提示数据查询错误?
    LntonMedia能实现视频流媒体的上传、转码、存储、录像、推拉流、直播、点播等功能,具备超低延迟、超高画质、超大并发访问量等特点,可应用在多样化的场景中,如:在线课堂、教育直播、校园活动直播、企业培训、游戏直播等。为了便于用户二次开发、调用与集成,我们也提供了丰富的API接口供......
  • OGG-02912 Patch 17030189 is required on your Oracle mining database for trail fo
    Therewillbeascript"prvtlmpg.plb"undergghomedirectory[oracle@OGGR2-1ogg]$ls-lrtprvtlmpg.plb-rw-r-----1oracleoinstall9487May272015prvtlmpg.plb[oracle@OGGR2-1ogg]$pwd/ogg[oracle@OGGR2-1ogg]$Logintothedatabaseand......
  • 在JAVA中使用mongoTemplate构造查询条件
    //创建条件对象Criteriacriteria=newCriteria();//3.单个条件查询多个字段(客户编号)if(StringUtils.isNotEmpty(bo.getAdmpId())){criteria.orOperator(Criteria.where("final_uid").is(bo.getAdmpId()),Criteria.where("customer_......
  • Oracle-控制文件成员
    为保证数据库安全,防止因为控制文件损坏而造成实例崩溃CRASH,增加一个控制文件成员,并存放于不同于当前的ASM磁盘上,以备不时之需。1.增加一组控制文件参数[RAC01]注:第2个控制文件只需要指定到其他ASM磁盘组,+DATA为原控制文件所在ASM磁盘组。SQL>setlines999pages999showparam......
  • Oracle Case 用法及注意事项
    OracleCase两种用法:注意事项:在条件中一定要增加其他条件的处理或者默认值,否则遇到未包含条件会抛异常>在条件中一定要增加其他条件的处理或者默认值,否则遇到未包含条件会抛异常1.查询语句语法:selectcasefieldnamewhenexp1thenresult1whenexp2thenresult2e......
  • Oracle listener 远程投毒漏洞:
    问题说明:就是listener是否允许远程随意注册的意思解决方案:通过oracle自身的设置允许注册的机器(名字、或ip)来限制非法注册 解决:合理配置:listener.oraVALID_NODE_CHECKING_REGISTRATION_LISTENER=ONVALID_NODE_CHECKING_REGISTRATION_LISTENER_SCAN1=ONREGISTRATION_......
  • dmPython连接达梦数据库,查询含有特殊字符报错'gbk' codec can't decode byte 0xaa in
     解决方法,可以在应用连接字符串url连接属性加上local_code=1指定客户端字符编码方式。#local_code=1表示执行客户端的本地编码是UTF-8,否则默认是GBKdm_conn=dmPython.connect(user=dm_user,password=dm_password,server='localhost',port=5236,local_code=1) 参考网......
  • shell语句中安装oracle准备
    #!/bin/bashread-p"请输入管理组名称"dbaread-p"请输入安装组名称"oinstallread-p"请输入用户名称"testerread-p"请输入用户密码"pass#定义editenv函数editenv(){cd/home/$testerecho"ORACLE_BASE=/oracle">>/home/......
  • SQL注入之Oracle手工注入
    0x00.Oracle注入1.Oracle的数据类型是强匹配的(MYSQL有弱匹配的味道),所以在Oracle进行类似UNION查询数据时候必须让对应位置上的数据类型和表中的列的数据类型是一致的,也可以使用null代替某些无法快速猜测出数据类型的位置。1.基础知识//注释符多行注释:/**/,单行注释:--1......