一次fast full scan的调优

通过对SQL查询分析,发现大量物理读取源于全表扫描。通过在WF_ACTIVITIES表的ACTTYPE, TRIM(DH), PROCESSID列上创建索引,将原来的全表扫描转换为INDEX FAST FULL SCAN,显著减少了逻辑读和物理读,从而将查询时间从48秒降低到8秒,提升了6倍性能。尽管SORT GROUP BY仍存在性能瓶颈,但整体优化效果明显。" 135482197,5564205,华为OD机试C++实现:幼儿园篮球游戏模拟,"['华为od', 'c++', '算法']
摘要由CSDN通过智能技术生成

1.闲着无聊在客户一套较为重要的系统中提取了一个4天的AWR,发现下面这条SQL产生最多的物理读,四天运行了159次。平均每次物理读1G左右。SQL运行时间三分钟左右。

SQL:

SELECT DECODE(B.DH, 'MAIN', :1, B.DH) DH, COUNT(DISTINCT(A.PROCESSID)) VALUE,

B.MC COMPANYNAME FROM FMIS3000.WF_ACTIVITIES A, (SELECT DH, MC FROM FMIS3000.XTDW WHERE 1=1 )

B WHERE A.ACTTYPE = 1 AND TRIM(A.DH) = TRIM(B.DH) GROUP BY B.DH, B.MC;

2.我查看了执行计划:

PLAN_TABLE_OUTPUT

 

Plan hash value: 2953189885

 

| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |

 

| 0 | SELECT STATEMENT | | 191K| 18M| | 300K (1)| 01:10:12 |

| 1 | SORT GROUP BY | | 191K| 18M| 4006M| 300K (1)| 01:10:12 |

|* 2 | HASH JOIN | | 37M| 3516M| | 45650 (1)| 00:10:40 |

| 3 | TABLE ACCESS FULL| XTDW | 528 | 18480 | | 4 (0)| 00:00:01 |

|* 4 | TABLE ACCESS FULL| WF_A

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值