暂无图片
请大佬帮忙看看sql执行,执行速度较慢如何寻找问题点,帮忙给点建议
我来答
分享
黑暗舞步
2021-10-11
请大佬帮忙看看sql执行,执行速度较慢如何寻找问题点,帮忙给点建议
暂无图片 10M

查询SQL:

SELECT TRANS_DATETIME as transDatetime, TRANS_CODE as transCode, TRANS_MERCHANTNAME as transMerchantName, TRANS_AMT as transAmount, TRANS_TYPE as transType FROM CORE_SCHEMA.BUSI_TRANS trans LEFT JOIN CORE_SCHEMA.INSU_ACCOUNT_CHANGE_DETAIL accChange ON accChange.CHANGED_CHANGECODE = trans.TRANS_ACCCHANGECODE LEFT JOIN CORE_SCHEMA.ACCOUNT acc ON acc."ID" = accChange.CHANGED_ACCOUNT_ID LEFT JOIN CORE_SCHEMA.CUSTOMER customer ON customer."ID" = acc.CUSTOMER_ID LEFT JOIN CORE_SCHEMA.INSU_SLIP slip ON acc.SLIP_ID = slip.SLIP_ID WHERE slip.SLIP_CODE in ('ZGRSGWHN2020010701','ZGRSGWHN2020010702', 'ZGRSGWHN2020010703', 'ZGRSGWHN2020010704', 'ZGRSGWHN2020010705', 'ZGRSGWHN2020010706', 'ZGRSGWHN2020010707', 'ZGRSGWHN2020010708', 'ZGRSGWHN2020010709', 'ZGRSGWHN2020010710', 'ZGRSGWHN2020010711', 'ZGRSGWHN2020010712', 'ZGRSGWHN2020010713', 'ZGRSGWHN2020010714', 'ZGRSGWHN2020010715', 'ZGRSGWHN2020010716', 'ZGRSGWHN2020010717', 'ZGRSGWHN2020010718', 'ZGRSGWHN2020010719', 'ZGRSGWHN2020010720', 'ZGRSGWHN2020010721', 'ZGRSGWHN2020010722', 'ZGRSGWHN2020010723', 'ZGRSGWHN2020010724', '190G171EH64001F', '190G171EH64001E', '190G171EH64001E-202007', '2020430102DDD400348772', '2020430102DDD400348771', '190G171EH64001F2021', 'GSGWHNS20210101') and customer.CERTIFICATE = '433022197502160526' ORDER BY TRANS_DATETIME DESC;



执行计划:

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 2802302807

--------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 18 | 3942 | 96005 (1)| 00:19:13 |
| 1 | SORT ORDER BY | | 18 | 3942 | 96005 (1)| 00:19:13 |
|* 2 | HASH JOIN | | 18 | 3942 | 96004 (1)| 00:19:13 |
|* 3 | HASH JOIN | | 19 | 1976 | 8035 (1)| 00:01:37 |
| 4 | NESTED LOOPS | | 2 | 124 | 858 (1)| 00:00:11 |
| 5 | NESTED LOOPS | | 3 | 124 | 858 (1)| 00:00:11 |
|* 6 | HASH JOIN | | 3 | 117 | 855 (1)| 00:00:11 |
|* 7 | TABLE ACCESS FULL | CUSTOMER | 1 | 24 | 205 (1)| 00:00:03 |
| 8 | TABLE ACCESS FULL | ACCOUNT | 173K| 2545K| 650 (1)| 00:00:08 |
|* 9 | INDEX UNIQUE SCAN | SYS_C0021222 | 1 | | 0 (0)| 00:00:01 |
|* 10 | TABLE ACCESS BY INDEX ROWID| INSU_SLIP | 1 | 23 | 1 (0)| 00:00:01 |
| 11 | TABLE ACCESS FULL | INSU_ACCOUNT_CHANGE_DETAIL | 1840K| 73M| 7172 (1)| 00:01:27 |
| 12 | TABLE ACCESS FULL | BUSI_TRANS | 1746K| 191M| 87965 (1)| 00:17:36 |
--------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

2 - access("ACCCHANGE"."CHANGED_CHANGECODE"="TRANS"."TRANS_ACCCHANGECODE")
3 - access("ACC"."ID"="ACCCHANGE"."CHANGED_ACCOUNT_ID")
6 - access("CUSTOMER"."ID"="ACC"."CUSTOMER_ID")
7 - filter("CUSTOMER"."CERTIFICATE"='433022197502160526')
9 - access("ACC"."SLIP_ID"="SLIP"."SLIP_ID")
10 - filter("SLIP"."SLIP_CODE"='190G171EH64001E' OR "SLIP"."SLIP_CODE"='190G171EH64001E-202007' OR
"SLIP"."SLIP_CODE"='190G171EH64001F' OR "SLIP"."SLIP_CODE"='190G171EH64001F2021' OR
"SLIP"."SLIP_CODE"='2020430102DDD400348771' OR "SLIP"."SLIP_CODE"='2020430102DDD400348772' OR
"SLIP"."SLIP_CODE"='GSGWHNS20210101' OR "SLIP"."SLIP_CODE"='ZGRSGWHN2020010701' OR
"SLIP"."SLIP_CODE"='ZGRSGWHN2020010702' OR "SLIP"."SLIP_CODE"='ZGRSGWHN2020010703' OR
"SLIP"."SLIP_CODE"='ZGRSGWHN2020010704' OR "SLIP"."SLIP_CODE"='ZGRSGWHN2020010705' OR
"SLIP"."SLIP_CODE"='ZGRSGWHN2020010706' OR "SLIP"."SLIP_CODE"='ZGRSGWHN2020010707' OR
"SLIP"."SLIP_CODE"='ZGRSGWHN2020010708' OR "SLIP"."SLIP_CODE"='ZGRSGWHN2020010709' OR
"SLIP"."SLIP_CODE"='ZGRSGWHN2020010710' OR "SLIP"."SLIP_CODE"='ZGRSGWHN2020010711' OR
"SLIP"."SLIP_CODE"='ZGRSGWHN2020010712' OR "SLIP"."SLIP_CODE"='ZGRSGWHN2020010713' OR
"SLIP"."SLIP_CODE"='ZGRSGWHN2020010714' OR "SLIP"."SLIP_CODE"='ZGRSGWHN2020010715' OR
"SLIP"."SLIP_CODE"='ZGRSGWHN2020010716' OR "SLIP"."SLIP_CODE"='ZGRSGWHN2020010717' OR
"SLIP"."SLIP_CODE"='ZGRSGWHN2020010718' OR "SLIP"."SLIP_CODE"='ZGRSGWHN2020010719' OR
"SLIP"."SLIP_CODE"='ZGRSGWHN2020010720' OR "SLIP"."SLIP_CODE"='ZGRSGWHN2020010721' OR
"SLIP"."SLIP_CODE"='ZGRSGWHN2020010722' OR "SLIP"."SLIP_CODE"='ZGRSGWHN2020010723' OR
"SLIP"."SLIP_CODE"='ZGRSGWHN2020010724')

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
chengang

返回记录太多。 BUSI_TRANS走了全表扫。

如果业务允许分页,那就分页。


不允许分页的话。你在 BUSI_TRANS表 建一个(TRANS_DATETIME,TRANS_DATETIME, TRANS_CODE , TRANS_MERCHANTNAME , TRANS_AMT , TRANS_TYPE,TRANS_ACCCHANGECODE )联后索引。应该能避免排序开销。也能走索引扫描吧。

暂无图片 评论
暂无图片 有用 1
流星

你用 sql tuning advisor 和sql access advisor来试试,就是让Oracle给出优化建议,不会的话网上一搜,墨天轮上一搜肯定有相关的文章

暂无图片 评论
暂无图片 有用 1
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏