谈谈海量数据,Oracle是怎么撑起来滴

luoyoumou 2013-12-24 11:27:20
经常见大家问:数据量大,大表,怎么优化。

-- 可以简单地说:如果是11G或以上版本:用间隔分区 + 局部索引 + 并行查询 + 适当创建汇总表,能轻松解决任何数据仓库表的数据量的问题!

-- 对于Oracle,用以上的一些技巧,应付每天入库量近亿的表已经是绰绰有余的了。
...全文
589 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
GISDev125 2014-01-16
  • 打赏
  • 举报
回复
遇到高手,就忍不住请教一下。 环境:Oracle 11g,表有15个字段,两个索引,一个date类型,一个是Number类型,按月分区,只保留6个月的数据,通过job定时检查分区(创建新分区,删除旧分区),只插入不更新,会查询,每天的插入量约35W。 问题: 1、数据插入一段时间后,索引会失效,原来是全局索引,后来换成局部索引,情况依然; 2、使用odp.net中提供的OracleBulkCopy批量插入,索引有效时插入效率极低,插入2k条记录最长耗时430s,最短耗时5s,取消索引后,插入时间降到0.5s一下; 想要咨询一个解决方案,提高插入和查询效率。
cn_nie 2014-01-13
  • 打赏
  • 举报
回复
师傅,可不可以讲详细一点撒.....
Uncloseable 2014-01-11
  • 打赏
  • 举报
回复
好贴,值得学习,最近学习中
Northgale 2014-01-05
  • 打赏
  • 举报
回复
做过BI的人都知道
  • 打赏
  • 举报
回复
引用 11 楼 gioh0022 的回复:
我想看具体的设计方案,哪里有~~
同求!多么希望有个具体细致的方案对照学习
  • 打赏
  • 举报
回复
我想看具体的设计方案,哪里有~~
jfhyn 2013-12-24
  • 打赏
  • 举报
回复
支持!
yinan9 2013-12-24
  • 打赏
  • 举报
回复
不错的经验啊,赞
请叫我-雷人 2013-12-24
  • 打赏
  • 举报
回复
来个高级沙发。罗老,并行查询描述下?
luoyoumou 2013-12-24
  • 打赏
  • 举报
回复
-- 下面是我经常的建表语句: create table fubi_user_product.F_PRODUCT_VIDEO_USER_NUM ( DATE_TIME DATE GENERATED ALWAYS AS (TO_DATE(TO_CHAR("DATE_ID"),'YYYYMMDD')) VIRTUAL VISIBLE, DATE_ID NUMBER(8,0) not null, PC_ACTIVE_USER_NUM NUMBER(20,0), WEB_ACTIVE_USER_NUM NUMBER(20,0), WEB_UNIQUE_ACTIVE_USER_NUM NUMBER(20,0), MOBILE_ACTIVE_USER_NUM NUMBER(20,0) ) PARTITION BY RANGE (date_time) INTERVAL(NUMTOYMINTERVAL(2,'year')) STORE IN (part01,part02,part03,part04,part05,part06,part07,part08) (PARTITION P20130101_LS VALUES LESS THAN (TO_DATE('20130101','YYYYMMDD')) TABLESPACE part08) COMPRESS parallel 4; CREATE UNIQUE INDEX UK_PRODUCT_VIDEO_USER_NUM ON F_PRODUCT_VIDEO_USER_NUM( DATE_TIME) INITRANS 4 LOCAL parallel 4; ALTER TABLE F_PRODUCT_VIDEO_USER_NUM ADD CONSTRAINTS PK_PRODUCT_VIDEO_USER_NUM PRIMARY KEY( DATE_TIME);
shenlele088 2013-12-24
  • 打赏
  • 举报
回复
引用 9 楼 luoyoumou 的回复:
[quote=引用 8 楼 shenlele088 的回复:] 学习了,并同上所问,1、能说说并行查询是加hint还是程序实现的? 还想提几个问题: 2、间隔分区+局部索引,主要是针对时间类,如话单、交易类的。但是,有的是人口系统,pk必须是全局的。此时,这个索引的代价会比较大。这种情况如何处理呢? 3、感觉像oltp的解决方案,但是您提到了“数据仓库”的字样。您说的oltp还是olap呢?
pk还有局部一说?[/quote] 呵呵,就是局部唯一索引的概念
luoyoumou 2013-12-24
  • 打赏
  • 举报
回复
引用 8 楼 shenlele088 的回复:
学习了,并同上所问,1、能说说并行查询是加hint还是程序实现的? 还想提几个问题: 2、间隔分区+局部索引,主要是针对时间类,如话单、交易类的。但是,有的是人口系统,pk必须是全局的。此时,这个索引的代价会比较大。这种情况如何处理呢? 3、感觉像oltp的解决方案,但是您提到了“数据仓库”的字样。您说的oltp还是olap呢?
pk还有局部一说?
shenlele088 2013-12-24
  • 打赏
  • 举报
回复
学习了,并同上所问,1、能说说并行查询是加hint还是程序实现的? 还想提几个问题: 2、间隔分区+局部索引,主要是针对时间类,如话单、交易类的。但是,有的是人口系统,pk必须是全局的。此时,这个索引的代价会比较大。这种情况如何处理呢? 3、感觉像oltp的解决方案,但是您提到了“数据仓库”的字样。您说的oltp还是olap呢?
dut703 2013-12-24
  • 打赏
  • 举报
回复
支持。

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧