Oracle-OLAP和OLTP解读

简介: Oracle-OLAP和OLTP解读

概述


Oracle-OLAP和OLTP解读

Oracle-index索引解读

Oracle-分区表解读

Oracle-锁解读

Oracle-等待事件解读

Oracle-procedure/cursor解读


通常来说,我们把业务分为来两类,在**线事务处理系统(OLTP)和在线分析系统(OLAP)**或者DSS(决策支持系统),这两类系统在数据库的设计上是如此的不同,甚至有些地方的设计是像相悖的。


比如:

OLTP 系统强调数据库的内存效率,强调内存各种指标的命中率,强调绑定变量,强调并发操作


OLAP 系统则强调数据分析,强调SQL 执行时长,强调磁盘I/O,强调分区等。


OLTP(on-line transaction processing)数据库


通常来讲,OLTP(在线事务处理系统)的用户并发数都很多,但他们只对数据库做很小的操作,数据库侧重于对用户操作的快速响应,这是对数据库最重要的性能要求。


对于一个OLTP 系统来说,数据库内存设计显得很重要,如果数据都可以在内存中处理,那么数据库的性能无疑会提高很多。


内存的设计通常是通过调整Oracle 和内存相关的初始化参数来实现的,比较重要的几个是内存相关的参数,包括SGA 的大小(Data Buffer,Shared Pool),PGA 大小(排序区,Hash 区等)等,这些参数在一个OLTP 系统里显得至关重要,OLTP 系统是一个数据块变化非常频繁,SQL 语句提交非常频繁的一个系统。


对于数据块来说,应尽可能让数据块保存在内存当中,对于SQL 来说,尽可能使用变量绑定技术来达到SQL 的重用,减少物理I/O 和重复的SQL 解析,能极大的改善数据库的性能。


除了内存,没有绑定变量的SQL 会对OLTP 数据库造成极大的性能影响之外,还有一些因素也会导致数据库的性能下降,比如热块(hot block)的问题,当一个块被多个用户同时读取的时候,Oracle 为了维护数据的一致性,需要使用Latch 来串行化用户的操作,当一个用户获得了这个Latch,其他的用户就只能被迫的等待,获取这个数据块的用户越多,等待就越明显,就造成了这种热块问题。这种热块可能是数据块,也可能是回滚段块。


对于数据块来讲,通常是数据块上的数据分布不均匀导致,如果是索引的数据块,可以考虑创建反向索引来达到重新分布数据的目的,对于回滚段数据块,可以适当多增加几个回滚段来避免这种争用。


OLAP(On-Line Analytical Processing)数据库


OLAP 数据库在内存上可优化的余地很小,甚至觉得增加CPU 处理速度和磁盘I/O 速度是最直接的提高数据库性能的方式,但这将意味着着系统成本的增加。实际上,用户对OLAP 系统性能的期望远远没有对OLTP 性能的期望那么高。


对于OLAP 系统,SQL 的优化显得非常重要


试想,如果一张表中只有几千数据,无论执行全表扫描或是使用索引,对我们来说差异都很小,几乎感觉不出来,但是当数据量提升到几亿或者几十亿或者更多的时候,全表扫描,索引可能导致极大的性能差异,因此SQL得优化显得重要起来。


分区技术在OLAP 数据库中很重要


这种重要主要是体现在数据管理上,比如数据加载,可以通过分区交换的方式实现,备份可以通过备份分区表空间,删除数据可以通过分区进行删除。


联机事务处理(OLTP)和联机分析处理(OLAP)的不同


联机事务处理(OLTP)和联机分析处理(OLAP)的不同,主要通过以下五点区分开来。


1.用户和系统的面向性:


OLTP是面向顾客的,用于事务和查询处理

OLAP是面向市场的,用于数据分析


2.数据内容:

OLTP系统管理当前数据.

OLAP系统管理大量历史数据,提供汇总和聚集机制.


3.数据库设计:

OLTP采用实体-联系ER模型和面向应用的数据库设计.

OLAP采用星型或雪花模型和面向主题的数据库设计.


4.视图:

OLTP主要关注一个企业或部门内部的当前数据,不涉及历史数据或不同组织的数据

OLAP则相反.


5.访问模式:

OLTP系统的访问主要由短的原子事务组成.这种系统需要并行和恢复机制.

OLAP系统的访问大部分是只读操作


OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。

OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。


aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTYxMDI3MjAzMTM5MzE5.png


相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
Oracle 关系型数据库 数据库
实战篇:Oracle 数据坏块的 N 种修复方式
实战篇:Oracle 数据坏块的 N 种修复方式
实战篇:Oracle 数据坏块的 N 种修复方式
|
运维 监控 算法
【Linux】查看系统信息
【Linux】查看系统信息
413 0
|
消息中间件 SQL 分布式计算
一篇文章搞定数据同步工具SeaTunnel
一篇文章搞定数据同步工具SeaTunnel
10361 1
|
2月前
|
安全 网络安全 开发工具
解决 Host key verification failed 报错的三种方法(含 SSH 安全建议)
本文由喵喵侠撰写,详解Git提交时常见报错“Host key verification failed”的成因与解决方案。当SSH密钥变更或服务器重装系统时,本地记录的主机密钥会失效,导致连接被拒。文章提供三种解决方法:使用`ssh-keygen -R`删除旧密钥、手动编辑`known_hosts`文件,或临时禁用严格检查(不推荐生产环境)。同时强调安全建议:确认服务器状态、核对密钥指纹、启用`VerifyHostKeyDNS`防范中间人攻击。帮助开发者快速定位问题,保障代码提交顺畅。
1094 0
|
7月前
|
安全 数据库连接 测试技术
Wire,一个神奇的Go依赖注入神器!
本文介绍了控制反转(IoC)与依赖注入(DI)的核心概念及其在Go语言中的应用,重点讲解了Google的Wire工具。通过定义提供者(provider)与注入器(injector),Wire在编译时自动生成依赖注入代码,提升程序性能与可维护性,适用于大型项目与高可测试性需求场景。
384 0
|
关系型数据库 数据库 PostgreSQL
PostgreSQL 11 新特性解读 : Initdb/Pg_resetwal支持修改WAL文件大小
PostgreSQL 11 版本的一个重要调整是支持 initdb 和 pg_resetwal 修改 WAL 文件大小,而 11 版本之前只能在编译安装 PostgreSQL 时设置 WAL 文件大小。
9475 1
|
分布式计算 关系型数据库 数据处理
OceanBase 在金融行业的应用案例
【8月更文第31天】随着金融行业的快速发展,数据量的急剧增长和对数据处理能力的需求日益增加,传统的数据库解决方案已经难以满足现代金融机构对于高性能、高可用性和大规模扩展性的需求。在这种背景下,分布式数据库应运而生,其中OceanBase作为一款由阿里巴巴自主研发的分布式关系型数据库,在金融行业得到了广泛的应用。
880 0
|
12月前
|
存储 运维 BI
万字长文带你深入广告场景Paimon+Flink全链路探索与实践
本文将结合实时、离线数据研发痛点和当下Paimon的特性,以实例呈现低门槛、低成本、分钟级延迟的流批一体化方案,点击文章阅读详细内容~
|
存储 文字识别 Oracle
ORACLE ASMFD 配置删除磁盘
1、AFD特性 * asM FILTER DRIVER 可以最大限度的限制磁盘的用户权限,即便是root用户,也无法删除AFD磁盘 * 在asM 12.1之后支持,在12.2中,asMFD在系统已经安装了asMLIB的情况下无法使用安装AFD,也不支持扩展分区表;18c以后的版本,AFD开...
2834 0
|
JavaScript IDE 前端开发
从 VS Code 的历史中可以学到的经验
VS Code 作为目前使用人数绝对 Top1 的 IDE/Editor(Stackoverflow 2021 调研:https://insights.stackoverflow.com/survey/2021#section-most-popular-technologies-integrated-development-environment 有 71% 的开发者使用),一定是做对了一些关键的事情才达到今天的规模,如果想做好一个技术性的产品或工具,细细研究,一定能有所收获。
2969 0
从 VS Code 的历史中可以学到的经验

热门文章

最新文章