mysql优化统计信息_表统计信息过旧导致执行慢的sql优化

UPDATE T_PUB_HF_TASKPOOL_IN L SET L.FETCH_ID = :B1 WHERE L.TASK_GROUP_ID = (SELECT TASK_GROUP_ID FROM (SELECT TASK_GROUP_ID FROM (SELECT /* leading(tg,t) index(t,IDX_HF_TASKPOOL_ORGID) */ TASK_GROUP_ID, T.BATCH_ID, (SELECT P.PRIORITY FROM

UPDATE T_PUB_HF_TASKPOOL_IN L

SET L.FETCH_ID = :B1

WHERE L.TASK_GROUP_ID =

(SELECT TASK_GROUP_ID

FROM (SELECT TASK_GROUP_ID

FROM (SELECT /*+

leading(tg,t) index(t,IDX_HF_TASKPOOL_ORGID) */

TASK_GROUP_ID,

T.BATCH_ID,

(SELECT P.PRIORITY

FROM T_PUB_HF_PRIORITY

P

WHERE P.SUB_BIZMODEL = T.SUB_BIZMODEL

AND NVL(P.BIZMODEL_TYPE, '00') =

NVL(T.BIZMODEL_TYPE, '00')

AND P.STATUS = '1') PRIORITY,

(SELECT 1

FROM T_PUB_HF_PRIORITY_ORG

O

WHERE O.SUB_BIZMODEL = T.SUB_BIZMODEL

AND O.ORG_ID = T.ORG_ID) PRIORITYORG

FROM T_PUB_HF_TASKPOOL_IN

T, T_PUB_HF_ATTR_TMR TG

WHERE T.SUB_BIZMODEL = TG.SUB_BIZMODEL

AND TG.ORG_ID = T.ORG_ID

AND TG.TMR_ID = :B3

AND TG.TL_UM_ID = :B2

AND T.FETCH_ID IS NULL

AND T.STATUS IS NULL)

ORDER BY PRIORITY, PRIORITYORG, BATCH_ID)

WHERE ROWNUM = 1)

用户提供不了绑定变量,只能我自己尝试。

select TMR_ID,count(*) from

T_PUB_HF_ATTR_TMR group by tmr_id order by count(*) desc;

--有58行被选择,只截取前面10行,其余剩下的基本是45与44.

20140311091901978.jpeg

select TL_UM_ID,count(*) from

T_PUB_HF_ATTR_TMR group by TL_UM_ID order by count(*) desc;

20140311091901861.jpeg

代入绑定变量后的值。Buffer get是6168

UPDATE /*+gather_plan_statistics

fwy1758*/T_PUB_HF_TASKPOOL_IN L喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAgU0VUIEwuRkVUQ0hfSUQgPSA="abcfwy'

WHERE L.TASK_GROUP_ID =

(SELECT TASK_GROUP_ID

FROM (SELECT TASK_GROUP_ID

FROM (SELECT /*+

leading(tg,t) index(t,IDX_HF_TASKPOOL_ORGID) */

TASK_GROUP_ID,

T.BATCH_ID,

(SELECT P.PRIORITY

FROM T_PUB_HF_PRIORITY

P

WHERE P.SUB_BIZMODEL = T.SUB_BIZMODEL

AND NVL(P.BIZMODEL_TYPE, '00') =

NVL(T.BIZMODEL_TYPE, '00')

AND P.STATUS = '1') PRIORITY,

(SELECT 1

FROM T_PUB_HF_PRIORITY_ORG

O

WHERE O.SUB_BIZMODEL = T.SUB_BIZMODEL

AND O.ORG_ID = T.ORG_ID) PRIORITYORG

FROM T_PUB_HF_TASKPOOL_IN

T, T_PUB_HF_ATTR_TMR TG

WHERE T.SUB_BIZMODEL = TG.SUB_BIZMODEL

AND TG.ORG_ID = T.ORG_ID

AND TG.TMR_ID = 'LIUYAOYUN692'

AND TG.TL_UM_ID = 'SUNYAN032'

AND T.FETCH_ID IS NULL

AND T.STATUS IS NULL)

ORDER BY PRIORITY, PRIORITYORG, BATCH_ID)

WHERE ROWNUM = 1)

20140311091901914.jpeg

查看详细的执行计划,红圈的返回行数估算是错误的,可以预计,t_pub_hf_taskpool_in表以及其索引的统计信息有误。

20140311091901515.jpeg

经查看,t_pub_hf_taskpool_in表最后统计信息更新日期是2014/3/5

3:53:03,有1500行。而今天3月10日,已经是212095行,可能做过批量加载数据。

在cow库尝试对t_pub_hf_taskpool_in表及其统计信息进行收集,完了后再跑sql。

20140311091901880.jpeg

此时buffer get已经下降到2590,性能提升两倍以上。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值