Oracle 大数据 读写性能提升 咨询

GISDev125 2014-01-16 02:28:38
最近遇到一个怪异问题,想咨询一下Oracle方面的高手,
环境:Windows Server 2008 R2,Oracle 11g
问题描述:一张大数据表,两个索引,一个date类型,一个number类型,这两个字段的值都会重复,用于查询,数据量基本维持在6-9千万。该表按月分区,数据只保存6个分区,通过job定时检查分区(创建新分区,删除旧分区),只插入,不更新,每天插入的数据量大概是35万条,网站需要查询该表中的数据。发现,插入数据一段时间后,索引会自动失效,导致查询性能骤降,索引失效后插入性能有所提高,但也维持在5s/2k以上;为提高插入性能实用odp.net提供OracleBulkCopy批量插入,但,插入性能仍然远远不够,插入2k条记录,最长耗时430s,最短耗时5s;手动将索引删除后,插入性能提升到插入2k条记录耗时0.5s一下,但查询性能完全不能接受,想向Oracle方面的专业人士或专家咨询一个插入和查询性能都能保持或提升的方案。
...全文
399 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcqm8888 2015-04-06
  • 打赏
  • 举报
回复
大数据很重要,这个问题有结果了吗?
GISDev125 2014-01-16
  • 打赏
  • 举报
回复
引用 3 楼 shenlele088 的回复:
[quote=引用 2 楼 liliooo 的回复:] [quote=引用 1 楼 shenlele088 的回复:] 用内部索引吧,至少时间可以用内部索引。 你一天35万,不必关心插入性能吧。 此外可以多几个分区,10天一个分区的话,就不用重建索引了。
主要是部分功能可能会很快用到插入的数据,不能做太大的延迟,延迟的时间需要控制在10分钟或者5分钟以内。插入,有的时候会报ORA-000054错误,资源繁忙,可能是因为有查询的存在,最好可以将插入和查询的相互影响降到最低。[/quote] 不应该,插入和查询时不加锁的,你要看下为什么会锁。[/quote] 不确定是否因为磁盘读写的问题导致的,通过Oracle Trace 发现,存在db file sequential read很耗时。 对于这个表,确实只有执行插入和查询操作,涉及任何更新。
shenlele088 2014-01-16
  • 打赏
  • 举报
回复
引用 2 楼 liliooo 的回复:
[quote=引用 1 楼 shenlele088 的回复:] 用内部索引吧,至少时间可以用内部索引。 你一天35万,不必关心插入性能吧。 此外可以多几个分区,10天一个分区的话,就不用重建索引了。
主要是部分功能可能会很快用到插入的数据,不能做太大的延迟,延迟的时间需要控制在10分钟或者5分钟以内。插入,有的时候会报ORA-000054错误,资源繁忙,可能是因为有查询的存在,最好可以将插入和查询的相互影响降到最低。[/quote] 不应该,插入和查询时不加锁的,你要看下为什么会锁。
GISDev125 2014-01-16
  • 打赏
  • 举报
回复
引用 1 楼 shenlele088 的回复:
用内部索引吧,至少时间可以用内部索引。 你一天35万,不必关心插入性能吧。 此外可以多几个分区,10天一个分区的话,就不用重建索引了。
主要是部分功能可能会很快用到插入的数据,不能做太大的延迟,延迟的时间需要控制在10分钟或者5分钟以内。插入,有的时候会报ORA-000054错误,资源繁忙,可能是因为有查询的存在,最好可以将插入和查询的相互影响降到最低。
shenlele088 2014-01-16
  • 打赏
  • 举报
回复
用内部索引吧,至少时间可以用内部索引。 你一天35万,不必关心插入性能吧。 此外可以多几个分区,10天一个分区的话,就不用重建索引了。

3,491

社区成员

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

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