ITPUB论坛-中国专业的IT技术社区

 找回密码
 注册
查看: 2764|回复: 40

[性能调整] 按月创建的分区表,月初查询特别慢

[复制链接]
论坛徽章:
0
发表于 2018-4-14 12:30 | 显示全部楼层 |阅读模式
按月创建的分区表,在每个月的月初(1号到3号)查询非常慢,4号后又恢复正常;
在执行期间跟踪了 10053 发现在月初这几天,由于新建的分区数据比较少,系统认为全表扫描的COST较小(21399),正常情况下是走的索引  Z_TESTRESULT_IDX3 (29929)


  Access Path: index (RangeScan)
    Index: Z_TESTRESULT_IDX3
    resc_io: 29910.00  resc_cpu: 163079950
    ix_sel: 4.7515e-04  ix_sel_with_filters: 4.7515e-04
    Cost: 29929.03 Resp: 29929.03  Degree: 1
  Access Path: index (skip-scan)
    SS sel: 0.10256  ANDV (#skips): 3933345
    SS io: 3933345.38 vs. table scan io: 21231.00
    Skip Scan rejected
  Access Path: index (FullScan)
    Index: Z_TESTRESULT_IDX4
    resc_io: 16838982.00  resc_cpu: 103377707861
    ix_sel: 1  ix_sel_with_filters: 0.32025
    Cost: 16851530.18  Resp: 16851530.18  Degree: 1
  ****** trying bitmap/domain indexes ******
  Best:: AccessPath: TableScan
         Cost: 21399.05  Degree: 1  Resp: 21399.05  Card: 229.07  Bytes: 0



附件中是SQL语句,及10053跟踪的消息:


要解决这个问题是不是将该月的分区做一个分析?

SQL.txt

6.24 KB, 下载次数: 10

SQL

10053-tnitsora_ora_2410.rar

12.75 KB, 下载次数: 7

10053-tnitsora_ora_2410

论坛徽章:
307
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
发表于 2018-4-14 19:05 | 显示全部楼层
1 到 3号,你每小时采集一下这个分区的统计信息试试,可能是统计信息未跟上导致,

使用道具 举报

回复
认证徽章
论坛徽章:
25
咸鸭蛋
日期:2012-04-19 22:15:41技术图书徽章
日期:2016-11-05 10:34:54弗兰奇
日期:2016-12-04 22:53:10托尼托尼·乔巴
日期:2016-12-29 12:51:28蒙奇·D·路飞
日期:2017-03-17 17:18:21罗罗诺亚·索隆
日期:2017-03-17 17:24:44山治
日期:2017-04-21 13:55:28娜美
日期:2017-05-19 14:49:04技术图书徽章
日期:2017-07-10 17:12:09托尼托尼·乔巴
日期:2018-02-01 10:07:45
发表于 2018-4-15 19:04 | 显示全部楼层
你有标量子查询啊,月初和4号的执行计划有变化吗?

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2018-4-15 21:02 | 显示全部楼层
desert_xu 发表于 2018-4-15 19:04
你有标量子查询啊,月初和4号的执行计划有变化吗?

4号之后的执行时走的是索引,4号之前走的是单个分区全扫描。

使用道具 举报

回复
论坛徽章:
1
秀才
日期:2017-02-22 15:16:26
发表于 2018-4-16 10:32 | 显示全部楼层
适时收集统计信息待走出正确执行计划时锁定统计信息;
或者适用hint强制指定索引;

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2018-4-16 23:28 | 显示全部楼层
latch_free 发表于 2018-4-16 10:32
适时收集统计信息待走出正确执行计划时锁定统计信息;
或者适用hint强制指定索引;

如果把统计信息锁定,下个月新建一个分区,会不会扫描新建的分区?
表中的数据还在不停的增加,如果分析数据被锁定后,统计信息就不准确了。
看看其它的方法能不能解决,如果不能解决只能 强制指定索引。

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2018-4-16 23:31 | 显示全部楼层
ZALBB 发表于 2018-4-14 19:05
1 到 3号,你每小时采集一下这个分区的统计信息试试,可能是统计信息未跟上导致,

有可能是这个导致的,我今天看了这个分区的分析时间还是 4月14日的,下个月月初,我再观察一下。感谢。

使用道具 举报

回复
论坛徽章:
1
秀才
日期:2018-06-21 10:08:00
发表于 2018-4-17 09:06 | 显示全部楼层
shi981 发表于 2018-4-16 23:31
有可能是这个导致的,我今天看了这个分区的分析时间还是 4月14日的,下个月月初,我再观察一下。感谢。

如果是怀疑1-3号数据量少,CBO自动选择全表扫描。
那是不是可以1-3号不对这个表进行统计信息收集,4号之后再搜集统计信息。

使用道具 举报

回复
认证徽章
论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
发表于 2018-4-17 13:32 | 显示全部楼层
1、及时手工补充分析新建表分区;
2、如果确定走索引在所有场景下为最优计划,可以用相关技术固定执行计划;
3、提供SQL语句和执行计划就可以,虽然10053也可以,但现实中用执行计划更多更实际些。

使用道具 举报

回复
论坛徽章:
1
秀才
日期:2017-02-22 15:16:26
发表于 2018-4-17 18:03 | 显示全部楼层
shi981 发表于 2018-4-16 23:28
如果把统计信息锁定,下个月新建一个分区,会不会扫描新建的分区?
表中的数据还在不停的增加,如果分析 ...

如果锁定,之后不会收集新增分区统计信息;
建个job在数据变化幅度较大的时间内自动收集统计信息

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表