基于Oracle的OLTP与OLAP数据库优化差异之内存设计

合集下载

Oracle发展历程

Oracle发展历程

Oracle数据库发展历程一、oracle数据库的发展历程本节中,我们主要介绍Oracle的发展历程。

1977年,Larry Ellison、Bob Miner和Ed Oates等人组建了Relational软件公司(Relational Software Inc.,RSI)。

他们决定使用C语言和SQL界面构建一个关系数据库管理系统(Relational Database Management System,RDBMS),并很快发布了第一个版本(仅是原型系统)。

1979年,RSI首次向客户发布了产品,即第2版。

该版本的RDBMS可以在装有RSX-11操作系统的PDP-11机器上运行,后来又移植到了DEC VAX系统。

1983年,发布的第3个版本中加入了SQL语言,而且性能也有所提升,其他功能也得到增强。

与前几个版本不同的是,这个版本是完全用C语言编写的。

同年,RSI更名为Oracle Corporation,也就是今天的Oracle公司。

1984年,Oracle的第4版发布。

该版本既支持VAX系统,也支持IBM VM操作系统。

这也是第一个加入了读一致性(Read-consistency)的版本。

1985年,Oracle的第5版发布。

该版本可称作是Oracle发展史上的里程碑,因为它通过SQL*Net引入了客户端/服务器的计算机模式,同时它也是第一个打破640KB内存限制的MS-DOS 产品。

1988年,Oracle的第6版发布。

该版本除了改进性能、增强序列生成与延迟写入(Deferred Writes)功能以外,还引入了底层锁。

除此之外,该版本还加入了PL/SQL和热备份等功能。

这时Oracle已经可以在许多平台和操作系统上运行。

1991年,Oracle RDBMS的6.1版在DEC VAX平台中引入了Parallel Server选项,很快该选项也可用于许多其他平台。

1992年,Oracle 7发布。

2022年华东师范大学计算机科学与技术专业《数据库原理》科目期末试卷B(有答案)

2022年华东师范大学计算机科学与技术专业《数据库原理》科目期末试卷B(有答案)

2022年华东师范大学计算机科学与技术专业《数据库原理》科目期末试卷B(有答案)一、填空题1、SQL语言的数据定义功能包括______、______、______和______。

2、SQL Server中数据完整性包括______、______和______。

3、数据库系统在运行过程中,可能会发生各种故障,其故障对数据库的影响总结起来有两类:______和______。

4、数据库内的数据是______的,只要有业务发生,数据就会更新,而数据仓库则是______的历史数据,只能定期添加和刷新。

5、数据管理技术经历了______________、______________和______________3个阶段。

6、已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主码是______________,系关系的外码是______________,学生关系的主码是______________,外码是______________。

7、在SELECT命令中进行查询,若希望查询的结果不出现重复元组,应在SEL ECT语句中使用______保留字。

8、在VB 6.0中,已经用Adobel连接到数据库,并已绑定到数据库中的某个关系表,现要通过此控件向表中插入数据,需要用到Adobel.Recordset的_____方法和Update方法,使用Adobel.Recordset的_____方法可以使当前行指针在结果集中向前移动一行。

9、“为哪些表,在哪些字段上,建立什么样的索引”这一设计内容应该属于数据库设计中的______阶段。

10、设在SQL Server 2000环境下,对“销售数据库”进行的备份操作序列如下图所示。

①出现故障后,为尽可能减少数据丢失,需要利用备份数据进行恢复。

首先应该进行的恢复操作是恢复_____,第二个应该进行的恢复操作是恢复_____。

QData Oracle 数据库一体机 - 沃趣科技

QData Oracle 数据库一体机 - 沃趣科技
2/8
硬件配置及性能
组件
类型
计算节点 服务器
存储节点 交换机
服务器
Flash 卡 IB 交换机
HCA 卡 IB 数据线
裸容量(TB)
Flash 卡 3.84
磁盘 13.5
链路切换 <2s
组件
类型
计算节点 服务器
存储节点 交换机
服务器
Flash 卡 IB 交换机
HCA 卡 IB 数据线
裸容量(TB)
QDATA 一体机 计算节点的高可用 使用 Oracle 的 Clusterware 集群 件管理。使环境的部署和运维相比 传统架构简单不少。
Oracle Exadata 同 QData
6/8
存储节点的高可用 完全由单一的磁盘阵列保证。现 在的做法,可以简单的总结为以 下两点: 1. 通过 raid 技术做到数据的
到三个存储节点中的任意两 个,所以存储节点中的任一 节点出现问题,对数据库的 整体访问不会带来影响
同 QData
5. 硬件能力
硬件能力直接关系到硬件的投入产出比,用户的使用感受,业务增长的支撑等诸多关键因素。
QDATA 的优点在于:
1. 计算节点使用更强的 CPU
2. 互联上使用延时更低,吞吐更大的 Infiniband 网络
2. 架构优势
统一方案:数据库计算层、存储层、网络互联层一体化解决方案。 线性扩展:每个层面均可实现在线扩展。相关性能随扩展线性增加。 分布式存储:所有的数据跨节点存储,自动分布在不同的存储节点上,并且能根据需要 自动重新平衡分配数据。 x86 服务器:计算层使用开放的 x86 架构服务器替代封闭的小型机。 PCIe Flash 存储:使用高性能 PCIe Flash 高速存储设备替换传统的机械磁盘,随机 iops 能达到 10 万-80 万,并且在各种极端情况下 iops 表现稳定。实现了存储能力的极大提升。 Inifiniband 互联:互联层使用 Infiniband 高速网络设备替换传统的 FC-San 网络,每个端 口高达 40Gb 带宽,端到端 200 纳秒延迟,实现计算节点之间及计算节点和存储节点的 IO 低延迟高吞吐。

Oracle 数据库一体机 — Exadata

Oracle 数据库一体机 — Exadata

• Sun Oracle Database Machine
– 预配置,提供高性能 – 平衡的系统 – 无限扩展性能,容量、带宽和处理 能力
• Exadata Storage Server Software 11gR2
• Exadata Storage Server Software 11gR2 • Oracle Database 11gR2
© 2009 Oracle Corporation - Confidential
6
Exadata 产品
Exadata Storage Server & Database Machine • Exadata Storage Server
– 为Oracle 数据库优化的存储产品 – 提供极限 I/O 和 SQL 执行性能 – 软硬件一体化
数据库处理
超高速并发网络
Exadata Cell
InfiniBand 交换网络
Exadata Cell
Exadata Cell
智能存储
基础技术 – 分布式计算
计算密集型处理 • Exadata 智能存储服务器
– 在存储部件中实现数据密集型处理 • 进行表及索引扫描,过滤查询无关数据
数据密集型处理
• 数据库服务器承担计算密集型处理(同传统结构)
– 50 GB/秒
50 40 30
未压缩数据的查询吞 吐量
50
• 与列压缩相结合
21 11.4 7.5 10
20 – 闪存中有超过 50 TB 的数据 10 – 对压缩数据的查询提高 到 500 GB/秒
0
HITACHI
USP V
TERADATA NETEZZA SUN ORACLE

OLAP技术在数据分析中的应用

OLAP技术在数据分析中的应用

OLAP技术在数据分析中的应用摘要:首先介绍了olap的概念、功能特征,然后通过实例对多维数据库的概念、层次关系和多维数据分析的主要操作进行了详细描述。

最后,以oracle公司的hyperion产品作为多维数据库分析的平台,通过对一大型能源集团公司的财务预算系统中的预算数据进行分析,介绍了olap技术方法的实际应用,总结了olap技术在数据分析工作中的优势。

关键词:联机分析处理;多维数据库;数据分析;甲骨文产品;财务预算系统中图分类号:tp392 文献标识码:a 文章编号:1007-9599 (2013) 02-0000-03olap(on-line analytical processing,即联机分析处理)是一种多维数据库技术。

这种技术的设计目的是针对特定问题的实时数据访问和分析,并且提供直观易懂的查询结果。

还有一种处理技术oltp(on-line transaction processing,即联机事务处理),与olap不同,oltp是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理。

1 olap技术介绍1.1 olap技术的发展背景60年代,关系数据库之父e.f.codd提出了关系模型,促进了联机事务处理(oltp)的发展(数据以表格的形式而非文件方式存储)。

1993年,e.f.codd提出了olap概念,认为oltp已不能满足终端用户对数据库查询分析的需要,sql对大型数据库进行的简单查询也不能满足终端用户分析的要求。

用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。

因此,e.f.codd提出了多维数据库和多维分析的概念,即olap。

olap技术正是为了满足决策管理的需求而产生的。

1.2 olap特征olap的技术核心是”维”(dimension)这个概念。

“维”是指一种视角,是一个判断、说明、评价和确定一个事物的多方位、多角度、多层次的条件和概念。

oracle各个版本之间的区别

oracle各个版本之间的区别

Oracle的各个版本之间的区别一、Oracle 9i比8i多了哪些新特性?1、并发集群,8i OPS升级为9i RAC,8i结点间用硬盘交换信息,9i结点间采用高速网线的缓存熔合(Cache Fusion)技术交换信息,交换速度提高100倍以上。

2、9i可以在线修改内核参数和内存分配,8i不行。

数据文件和表空间管理,8i手工管理,9i自动管理。

3、9i比8i增强了对ANSI SQL99的支持。

4、9i比8i增强了故障后的快速恢复(Fast-start)。

5、8i只支持物理备份(physical backup)数据库,9i还增加了支持逻辑备份(logical backup)数据库,使备份数据库除了作为主数据库的镜像外,还可以提供其他数据服务.二、Oracle 10g比9i多的新特性?1. 10g支持网格计算,即多台结点服务器利用高速网络组成一个虚拟的高性能服务器,负载在整个网格中衡(Load Balance),按需增删结点,避免单点故障(Single Point of Faliure)2.10g容易安装,且安装速度比9i少了一半3.新增基于浏览器的企业管理器(Enterprise Manager)。

4.支持自动管理(Automatic Management)增删硬盘不再需要操作系统管理员设置的镜像、负载均衡物理卷、逻辑卷、分区、文件系统,只要打一条Oracle命令,ASM会自动管理增加或删除的硬盘。

5.内存自动化,根据需要自动分配和释放系统内存。

6.SQL性能调整自动化。

7.快速纠正人为错误的闪回(Flashback)查询和恢复,可以恢复数据库、表甚至记录。

8.数据泵(Data Pump)高速导入、导出数据,比传统方法导出速度快两倍以上,导入速度快15--45倍.9.精细审计(Fine-Grained Auditing),记录一切对敏感数据的操作10.存储数据的表空间(Tablespace)跨平台复制,极大的提高数据仓库加载速度。

数据仓库的概念

数据仓库的概念

一、数据仓库的概念及使用情况介绍1996年, Inmon 在他的专著《Building the Data Warehouse》中, 对数据仓库做了如下定义,即“面向主题的、完整的、非易失的、不同时间的、用于支持决策的数据集合”。

这和传统的OLTP系统有很大的区别,它属在线分析(OLAP)系统的范畴。

面向主题的,指的是它将依据一定的主题,比如经销商、产品、定单等汇总各个OLTP系统的数据。

完整的, 指的是要求对各个系统数据表示进行转换,用统一编码表示,比如,A系统用001表示退货, 而B系统用999表示退货,在数据仓库中必须统一成一个编码。

非易失的, 指的是系统用户只读数据,不得修改数据。

数据仓库完整地记录了各个历史时期的数据,而OLTP系统不会保留全部的历史记录。

OLTP系统也难以支持决策查询,例如从几千万笔记录中获取不同区域的汇总报表。

完整的数据仓库应包括:1.数据源->2.ETL ->3.数据仓库存储->4.OLAP ->5.BI工具现实中可以实现的方案有:1.数据源-> BI工具2.数据源-> OLAP -> BI工具3.数据源-> 数据仓库存储-> BI工具4.数据源-> 数据仓库存储-> OLAP -> BI工具5.数据源-> ETL -> 数据仓库存储-> OLAP -> BI工具可见其中必需的是数据源和前端,其他的部分都可根据具体情况决定取舍。

建立数据仓库的步骤:1) 收集和分析业务需求2) 建立数据模型和数据仓库的物理设计3) 定义数据源4) 选择数据仓库技术和平台5) 从操作型数据库中抽取、净化、和转换数据到数据仓库6) 选择访问和报表工具7) 选择数据库连接软件8) 选择数据分析和数据展示软件9) 更新数据仓库数据仓库设计的主要步骤如下:1. 系统主题的确定这要求系统设计人员多与业务人员沟通, 详细了解业务需求、报表需求,再归纳成数据仓库的主题。

数据夜话之大数据OLAP数据库概览

数据夜话之大数据OLAP数据库概览

数据夜话之⼤数据OLAP数据库概览当下⼤数据技术发展如⽕如荼,各种数据库处理技术层出不穷,可是各种数据库的⼤致分类清楚吗?能够结合项⽬数据的业务特点进⾏选型吗?今天先从OLAP 型数据库说起,介绍相关的数据库。

OLTP和OLAP分不清?我们通常将数据库分为OLTP和OLAP两⼤类,先了解⼀下它们的区别:1. OLTP (online transaction processing 联机事务处理),典型代表如 mysql,擅长事务处理,能够在数据操作时保持强⼀致性和原⼦性,⽀持数据的数据频繁插⼊或修改,数据模型⼀般为实体-关系模型(E-R),主要为了查询或者改变数据记录。

对于银⾏证券公司的账务系统来说为了保证准确性当然⾸选OLTP型数据库。

但是数据量过⼤的话,OLTP就有些⼒不从⼼了。

2. OLAP (online analytical processing 联机分析处理),例如 greenplum,擅长对⼤量数据进⾏多维复杂分析,追求极致性能,⽽不特别关注数据插⼊修改等事务性处理的⼀类数据库系统,数据模型⼀般为星型或雪花型,主要为了分析规律预测趋势。

可以理解为 OLAP ⾯对的是复杂的多表聚合型查询。

OLAP技术栈为应该这挑战⼤数据给传统数据技术带来的巨⼤挑战,主要发展出三⼤类OLAP型技术:MPP架构型OLAP (Massive Parallel Processing)批处理架构型OLAP预计算型OLAP上⾯三种OLAP型技术按照建模类型来划分的话,也可以分为:MOLAP,M即表⽰多维(Multidimensional),⼀般指预计算型OLAP。

它会对原始数据进⾏预计算得到⽤户可能需要的所有结果,然后将结果存储到优化过的多维数组存储中,能够快速响应请求。

如果业务发⽣需求变更,需要进⾏预定模型之外新的查询操作,现有的MOLAP实例就⽆能为⼒了,只能重新进⾏建模和预计算。

所以,MOLAP适合业务需求⽐较固定,数据量较⼤的场景。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Oracle的OLTP与OLAP数据库优化差异之内存设计要进行数据库优化,首先应该弄清数据库类型及其特点。

从数据处理角度分类,数据库可分为两大类:联机事务处理OLTP(on-line transaction processing)和联机分析处理OLAP(On-Line Analytical Processing),OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易,电信业务等。

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

两类系统处理的数据量不同,技术的使用也是不一样的,在OLTP系统中,oracle、db2等是主流数据库产品,数据量在几个TB甚至更小。

在OLAP系统中,除了传统的数据库外,有越来越多的其他数据库产品出现,如sysbase IQ,GP,国产数据库GBase 8a,达梦7等,数据量大多在几十TB甚至更高,数据处理主要集中在查询统计分析、大数据量的导入导出等。

在这里,我们主要讨论的还是最通用的ORACLE数据库的两类系统的优化思路和方式的差异。

数据库具体是OLTP还是OLAP取决于你的业务类型。

OLTP和OLAP两类系统对数据库要求截然不同。

除了系统本身自有的特点之外,在技术方面也存在巨大的差别,所带来的优化技术和理念也不太一样。

OLTP主要是交易型数据库,其事务特征为高并发而数据量小,大部分情况都要求瞬间出结果,系统要求的实时性、稳定性、安全性较高。

这类数据库的系统瓶颈主要在CPU和内存上,在优化思路上,更加关注CPU的利用率;各种命中率指标,譬如SHARED POOL, BUFFER CACHE的命中率;SQL语句绑定变量等。

由于数据量相对比较小,因此OLTP大部分都是集中式的。

OLAP主要是分析型数据库,并发量比较小,但单个sql消耗巨大,大部分查询需要处理海量数据,用户对响应时间的要求远不如OLTP用户。

由于数据量巨大,这类数据库的系统瓶颈主要在磁盘io上,一些传统的优化指标和手段,如SHARED POOL, BUFFER CACHE 的命中率等对OLAP型数据库意义不大,而分区,并行操作,压缩,物化视图,全文索引等技术可能都会在OLAP中体现。

OLAP库基本都是上TB的,有的是几百TB,甚至PB,因此很多OLAP库可能都分成了N个库,以便于分布式处理。

OLAP一般都是采用星星模式或者雪花模式的。

下面从内存设计的优化角度具体分析一下这两类系统优化手段的差异:内存设计通常是通过调整ORACLE内存参数来实现的。

oracle的内存可分为SGA(shared global area)共享全局区和PGA(program global area)进程全局区两部分。

OLTP系统由于处理的事务为高并发且数据量小,SGA比PGA更为重要;OLAP系统处理的事务数据量大且并发量比较小,大部分查询可能运行一次可能很久不会在运行,SQL的重用意义不大,很多命中率指标对于OLAP也影响较小处理,因此SGA相对次要,而较多大数据的排序,HASH操作都需要在PGA完成,PGA大小直接决定了处理效率。

尽管从oracle 10g开始,oracle已经减少了对内存命中率的关注,转而通过工作时间(CPU时间或服务时间)和等待工作时所消耗的时间(等待时间)来分析系统的性能,但对一个OLTP库来说,库缓存命中率(Library hit)和数据缓冲区命中率(buffer hit)仍是极重要的指标。

OLTP系统是一个SQL执行非常密集的系统,Library hit命中率低说明共享池里很多SQL不能重用,需要重新解析,这会大大增加CPU负荷,降低系统性能,影响SQL 执行效率。

使用绑定变量是减少硬解析,提高库缓存命中率的有效手段。

数据缓冲区命中率表示在不需要进行磁盘访问的情况下在内存结构中找到常用数据块的频率,可视为OLTP系统的晴雨表,一个好的OLTP系统应该可以得到95%或更大的命中率,由于CPU对内存的访问速度要比从磁盘的速度快千倍,当SQL所需要的数据块都能从内存取得时,SQL执行效率无疑比从磁盘读数据高很多,对于一个OLTP库来说,由于处理的数据量都较小,尽可能让数据块保存在内存中,提高内存命中率,是一个极其重要的性能优化指标。

把缓冲区命中率从90%提高到95%可能使系统性能翻倍。

对缓冲区命中率偏低的OLTP 系统,合适的增大Buffer Cache的大小,可改善数据库性能。

而在OLAP系统中,就无法以这两个指标来衡量数据库性能。

OLAP库运行的SQL所查询的数据块量巨大,不可能长期缓存在内存中;每次执行的SQL重复率不高,SQL硬分析的代价可以忽略,SQL是否重用并不重要,在某些情况下,使用绑定变量重用SQL,甚至会因为选择了错误的执行计划而导致严重的后果。

对于OLAP系统,我们可以用另一种内存命中率来评估系统,即PGA内存排序命中率。

该指标反映了在PGA中完成的排序操作的比例。

当要求排序或执行一个哈希连接时,Oracle 可能会执行大量 IO。

在可能情况下,Oracle 在 PGA 内执行排序或哈希连接。

但是,如果内存不够,那么 Oracle 会写到临时表空间的临时段。

没有足够的 PGA 所造成的影响是很大的。

如果内存少,那么在排序期间,Oracle 可能从磁盘读写数据很多次。

数据库响应时间会随着内存的减少而显著增加。

OLAP系统的排序操作或哈希连接操作极多,过小的PGA 设置对OLAP型数据库性能的影响是灾难性的。

除了设置足够大的PGA尺寸,将临时表空间部署在io速度较快的磁盘上,也可提升这类操作的效率。

oracle的内存SGA和 PGA两大块,前者帮助我们阻止逻辑读取变成物理读取,后者帮助我们阻止排序和哈希操作产生 IO 到临时表空间。

很难做到平衡。

从Oracle 10g开始,Oracle提供了自动共享内存管理ASMM(Automatic Shared Memory Management)新特性。

所谓ASMM,就是指我们不再需要手工设置shared pool、buffer pool 等若干内存池的大小,而是为SGA设置一个总的大小尺寸即可。

Oracle 10g数据库会根据系统负载的变化,自动调整各个组件的大小,从而使得内存始终能够流向最需要它的地方。

根据Oracle的建议,Oracle最多可以使用80%的物理内存,其余20%保留给操作系统使用,在这80%的内存中,对于OLTP系统,Oracle建议分配20%给PGA使用,剩下80%分配给SGA。

OLTP:PGA_AGGREGATE_TARGET = (total_mem * 80%) * 20%在OLAP系统中,由于会运行一些很大的查询,Oracle建议分配分配50%给PGA使用,结合实际情况,该比例可以提高至70%至80%。

OLAP:PGA_AGGREGATE_TARGET = (total_mem * 80%) * 50%而在Oracle 11g中,如果设置了MEMORY_TARGET 参数,那么 Oracle 会尝试在 SGA 和PGA 之间优化内存,并且尝试在指定的内存目标内保持两者的大小。

这又是一大进步,因为在 Oracle 10g 中很难确定最佳设置。

但对于某些应用程序来说,自动内存管理可能不是最佳的解决方案。

自动内存管理往往超过约一小时的短期窗口来调整内存分配。

如果你的系统有突发工作量,或短期需求高峰,那么自动内存管理可以要一天后才能发挥出来。

现在很多数据库是OLAP/OLTP的融合,可能白天处理的事务偏于OLTP型,晚上则较多批处理作业,偏于OLAP型。

在这种情况下,较好的方式是,确定内存的优化设置,或是用固定值,也可以交替设置。

例如,晚上,我们可能会从 SGA 到 PGA 切换内存;而在白天,我们再把内存移到 SGA。

尽管通过修改Oracle内存参数的大小通常可以有效地提高Oracle性能,但是由于内存有限,不可能无限增大,需要在高速缓存命中率和物理内存之间取得平衡。

在增大SGA或PGA 之前,必须明白这些改动对系统的物理内存可能产生的影响,如果增加后的参数值比系统可用内存大,就会严重降低系统性能。

而一个不合适的过大的数据库高速缓存,甚至会导致数据库性能的退化。

当系统处理任务时,如果没有足够的内存,它就会开始执行分页和交换,以完成这个激活的任务。

当系统执行分页时,会将当前没有使用的信息从内存移到硬盘上。

这样就可以为当前需要内存的程序分配内存。

如果频繁地发生分页,系统性能就会严重降低,从而导致很多程序的执行时间变长。

当系统执行内存交换时,会将活动进程临时地从内存移到硬盘上,这样另一个活动进程就可以得到所需要的内存。

内存交换基于系统循环时间。

如果内存交换过于频繁,就会产生大量的I0,应用的性能可能会急剧恶化。

系统内存的配置应尽可能实现如下目标:1)减少分页;2)减少内存交换;3)尽可能让系统全局区(SGA)能驻留内存。

Oracle数据库系统性能与多方面因素有关,在这里只是从内存设计角度提供了一些优化思路,尽管Oracle 11g已经提供了更为强大的内存自动管理功能,但作为DBA,要想让所维护的数据库处于较好的性能下,仍应该对这两类系统的业务差别和Oracle体系结构有深刻理解,才能做到有的放矢,而不是希望通过简单修改某个参数,就能让数据库性能得到提升。

专著(文献类型标识:M) [序号] 主要责任者。

题名[M]。

出版地:出版者,出版年,起止页码。

参考文献:Oracle Database 10g性能调整与优化让Oracle跑得更快:Oracle 10g性能分析与优化思路。

相关文档
最新文档