ORACLE海量数据频繁更新容易出一些怪问题

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介:
最近在做一个海量数据的查询系统,每天会在凌晨插入20M行数据左右,一个月数据在550M行左右,通过索引等方法,基本上能实现不错的查询性能。不过,该月数据会一次性地
 被删除为若干个月后的数据清空空间,我们是用TRUNCATE语句来清空的。结果在QA测试时需要对清空、重装载数据的过程进行功能、性能测试,发现不定地会出现在重装一天数据后,就导致数据查询
 急剧变慢,基本无法得到查询结果。甚至于明知查出来的数据会很少,或者索引范围很小。问题是用于分块的一个分区键值表被用来限定大数据表查询范围,如果用分工健值表的主键来唯一确定大数据表范围,则没有性能
 变慢问题,而通过分区键值表得到不止一个值,即便是关联的数据更少或差不多,则查询无解。通过执行计划跟踪,发现分区键值表无法很好地使用其表上所建索引,而直接导致在大数据表上做全表扫描。奇怪的是,唯一确定就能用到索引,唯二确定就不能用到索引,
 而且还不是100%的出现这个情况,不过有一定可能重现。
 经过分析,发现数据字典中一些关于大数据表的统计数据没有得到及时更新,让查询优化引擎认为数据量很小,不需要索引能更快得到结果,尽管这不是现实的情况?!反正手工改变该统计量后,查询速度就正常了。因为不能在项目起来后用DBA用户手工管理,就采取在导入

 一天数据后,进行大数据表分析强制更新统计数据,虽然分析该表会多出十多分钟处理,但总算解决了这个古怪问题。


本文转自 dannyy1026 51CTO博客,原文链接:

http://blog.51cto.com/dannyyuan/70762
相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
监控 Oracle 安全
Oracle数据库用户频繁被锁问题原因排查及解决
由于应用环境下Oracle用户总是频繁被锁,经常不能执行数据库事务操作,严重影响了系统运行效率。通过问题原因分析及排查,发现了原因,在此记录一下。
5008 0
Oracle数据库用户频繁被锁问题原因排查及解决
|
存储 Oracle 关系型数据库
Oracle海量数据优化-02分区在海量数据库中的应用-更新中
Oracle海量数据优化-02分区在海量数据库中的应用-更新中
218 0
|
SQL 存储 Oracle
Oracle海量数据优化-01分区的渊源
Oracle海量数据优化-01分区的渊源
143 0
|
Oracle 关系型数据库
ORACLE两表关联更新三种方式
不多说了,我们来做实验吧。
ORACLE两表关联更新三种方式
|
Oracle 物联网 关系型数据库
阿里云PolarDB发布重大更新 支持Oracle等数据库一键迁移上云
5月21日,阿里云PolarDB发布重大更新,提供传统数据库一键迁移上云能力,可以帮助企业将线下的MySQL、PostgreSQL和Oracle等数据库轻松上云,最快数小时内迁移完成。
12587 0
|
关系型数据库 索引 存储
ORACLE大表关联更新提速方法
执行两表关联更新时,oracle一般采用类似nested_loop的更新方式。当依据关联关系将表B的值更新到A表的字段中时,先遍历A表的,对A表的每行记录查询B表的索引,得到b表的结果后再更新到A表。由于存在查询索引的操作,更新每条记录都会至少执行两次io操作。
324494 0
|
数据库 关系型数据库 PolarDB
重磅 | 阿里云PolarDB发布重大更新:支持Oracle等数据库一键迁移上云
今日,阿里云PolarDB发布重大更新,帮助企业一键迁移传统数据库,可以帮助企业将线下的MySQL、PostgreSQL和Oracle等数据库轻松上云,最快数小时内迁移完成。据估算,云上成本不到传统数据库的1/6。目前,已有约40万个数据库迁移到阿里云上。
1477 0
|
Oracle 关系型数据库 数据库
深入解析:你听说过Oracle数据库的更新重启动吗?
更新重启动是 Oracle 中一个隐藏的知识点,当 Oracle 在读取数据时,会构造读一致性,当读取的内容发生了修改,Oracle 会通过 UNDO 信息来还原数据的前镜像,把数据还原到查询发生的时刻,通过构造一致性的结果来实现读取数据的一致性和隔离性。
1551 0