查看: 8099|回复: 10

[性能调整] oracle海量数据查询优化问题

[复制链接]
论坛徽章:
3
ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:152014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02
发表于 2011-5-9 14:34 | 显示全部楼层 |阅读模式
数据库环境:
oracle 10gR2 +windows2003
每日大概350万条记录,表按照范围分区,每周建立一个分区。
生产库只保存两个月记录,每天凌晨会有作业将超出两月的记录转移至历史库。
现在的问题:
由于第一次转移数据(以前不转移数据,造成单表数据量大的吓人,无法通过delete删除),直接采取删分区方式删数据,引起索引失效,
然后花了很长的时间来重建索引。
重建索引后发现查询效率反而不如以前。
后台查询sql 是通过拼接SQL,指定分区来查询的。
请教各位有何办法能优化的。
论坛徽章:
9
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:00ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51蛋疼蛋
日期:2011-08-09 14:26:55ITPUB十周年纪念徽章
日期:2011-11-01 16:24:51ITPUB 11周年纪念徽章
日期:2012-10-09 18:09:19奥迪
日期:2013-09-12 15:57:042014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09
发表于 2011-5-9 14:37 | 显示全部楼层
350W×7=2250W. 按照你说的生产库保存2个月的记录,这个要看你的查询到底查询什么?

使用道具 举报

回复
论坛徽章:
3
ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:152014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02
 楼主| 发表于 2011-5-9 14:42 | 显示全部楼层
查询条件只有时间(限制一次只能查询一周的数据)、名称、类型,这几个字段均建有索引。

使用道具 举报

回复
论坛徽章:
15
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:27马上有房
日期:2014-04-04 19:42:43马上有对象
日期:2014-02-18 16:44:082014年新春福章
日期:2014-02-18 16:44:08本田
日期:2014-01-16 21:44:06大众
日期:2013-12-14 09:29:562013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:14:48奥运会纪念徽章:射箭
日期:2012-07-26 13:53:55奥运会纪念徽章:跆拳道
日期:2012-07-13 13:54:19
发表于 2011-5-9 20:13 | 显示全部楼层
指定分区查询,建分区索引就行

使用道具 举报

回复
论坛徽章:
13
数据库板块每日发贴之星
日期:2007-09-20 01:04:22铁扇公主
日期:2012-02-21 15:02:402010新春纪念徽章
日期:2010-03-01 11:08:28月度精华徽章
日期:2009-04-01 02:15:18数据库板块每日发贴之星
日期:2008-05-17 01:02:08生肖徽章2007版:兔
日期:2008-04-07 19:49:48生肖徽章2007版:鼠
日期:2008-01-02 17:35:53生肖徽章2007版:鸡
日期:2008-01-02 17:35:53ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44数据库板块每日发贴之星
日期:2007-10-20 01:03:31
发表于 2011-5-9 22:54 | 显示全部楼层

回复 #1 grass_root 的帖子

试试收集一下统计信息

使用道具 举报

回复
论坛徽章:
3
ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:152014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02
 楼主| 发表于 2011-5-13 14:07 | 显示全部楼层
原帖由 gszoracle 于 2011-5-9 20:13 发表
指定分区查询,建分区索引就行

已经应用分区索引,但是速度还是不满意。
该表实时产生的数据量相当大。

使用道具 举报

回复
论坛徽章:
10
2011新春纪念徽章
日期:2011-02-18 11:43:342015年新春福章
日期:2015-03-06 11:58:18懒羊羊
日期:2015-03-04 14:52:11马上有钱
日期:2014-02-18 16:43:092014年新春福章
日期:2014-02-18 16:43:09优秀写手
日期:2013-12-18 09:29:11三菱
日期:2013-08-30 20:37:412013年新春福章
日期:2013-02-25 14:51:24ITPUB十周年纪念徽章
日期:2011-11-01 16:24:51暖羊羊
日期:2015-06-22 15:51:36
发表于 2011-5-13 15:32 | 显示全部楼层
原帖由 grass_root 于 2011-5-13 14:07 发表

已经应用分区索引,但是速度还是不满意。
该表实时产生的数据量相当大。



由于第一次转移数据(以前不转移数据,造成单表数据量大的吓人,无法通过delete删除),直接采取删分区方式删数据,引起索引失效,
然后花了很长的时间来重建索引。
重建索引后发现查询效率反而不如以前。

--既然是分区索引,truncate分区之后 怎么会花很长时间重建索引,此时分区索引的所在分区记录应该为0 啊
--重建索引后 sql执行计划有无变化 查看一下索引的统计信息
--最好把执行计划贴出来以及sql的大致结构,查询条件所用的字段上是否有索引,选择性高不高

使用道具 举报

回复
论坛徽章:
183
生肖徽章:狗
日期:2006-11-23 04:26:03生肖徽章:羊
日期:2007-09-26 17:08:21生肖徽章:马
日期:2007-09-26 17:08:49授权会员
日期:2007-12-31 19:14:41生肖徽章2007版:牛
日期:2008-03-28 10:02:30奥运会纪念徽章:柔道
日期:2008-04-30 16:28:44奥运会纪念徽章:垒球
日期:2008-05-12 21:28:28奥运会纪念徽章:体操
日期:2008-06-26 10:00:41奥运会纪念徽章:沙滩排球
日期:2008-07-27 12:41:59奥运会纪念徽章:艺术体操
日期:2008-07-30 11:09:47
发表于 2011-5-13 15:34 | 显示全部楼层
楼主应该建local索引,如果是local,truncate是不会引起索引失效的。

使用道具 举报

回复
论坛徽章:
1
ITPUB十周年纪念徽章
日期:2011-11-01 16:25:22
发表于 2011-5-13 17:05 | 显示全部楼层
select owner,index_name,index_type,index_name,table_name,table_owner from dba_indexes where owner='SCOTT';

select dbms_metadata.get_ddl('INDEX','INDEX_NAME','OWNER') from dual;

之后根据索引的结构重新创建索引

使用道具 举报

回复
论坛徽章:
2
生肖徽章2007版:牛
日期:2008-11-17 15:05:152010新春纪念徽章
日期:2010-03-01 11:20:52
发表于 2011-5-13 17:37 | 显示全部楼层
“如果分区的目的是为了进行历史数据归档,那么一般来说分区主键都是根据时间字段。历史数据归档和历史查询库的使用也是优化海量数据库最常用和最有效的方法之一。通过对生产表按照时间字段进行分区,通过exchange partition的方式将分区清空,数据再exchange到历史表,可以实现快速的数据归档。这种归档是一次归档,归档到历史表中,实际上,很多系统不仅需要将生产表数据归档到历史表中,还需要将生产库的数据归档到历史库中,从而减少生产库的规模,这种归档一般需要通过数据复制的方法来实现。这种设计是需要在数据库架构设计的时候就考虑好的。”
----主题:DBA日记第三部 像Oracle一样思考 4月11日理解分区表(2)分区表和海量数据优化
http://www.oraclefans.cn/forum/showblog.jsp?rootid=29517

使用道具 举报

回复

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

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

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