数据库-oracle
iteye_12702
这个作者很懒,什么都没留下…
展开
-
<Oracle-1> oracle体系结构概述
[u]本系列主要参考《Oracle Database 9i/10g/11g编程艺术》第二版 -Thomas kyte著[/u]书中有段话:[b][color=violet]通常解决问题有简单方案和复杂方案,而选择后者居多,这并不是故意,只是出于无知。[/color][/b]此书推荐[quote]“针对不同数据库写不同的程序,而不是写一个可随意移植到不同数据库的程序,代价高而且...2014-12-21 22:02:37 · 80 阅读 · 0 评论 -
<oracle优化>(url收藏)
[b]1. CBO & RBO[/b][b]Rule Based Optimizer(RBO)基于规则Cost Based Optimizer(CBO)基于成本,或者讲统计信息[/b]ORACLE 提供了CBO、RBO两种SQL优化器。CBO在ORACLE7 引入,但在ORACLE8i 中才成熟。ORACLE 已经明确声明在ORACLE9i之后的版本中(ORACLE 10G ),R...原创 2015-02-11 22:18:44 · 76 阅读 · 0 评论 -
OLTP(联机事务处理)和OLAP(联机分析处理) 【转】
做数据库优化时,一定要先了解数据库支撑的应用特点,不同类型的应用优化重点和方式都不同。数据处理大致可以分成两大类:[b]联机事务处理OLTP[/b](on-line transaction processing)、[b]联机分析处理OLAP[/b](On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。...原创 2015-02-12 14:13:29 · 223 阅读 · 0 评论 -
<让oracle跑得更快-1> 引起数据库性能问题的因素
此《让oracle跑得更快》系列参考《让Oracle跑得更快 Oracle.10g性能分析与优化思路》.(谭怀远)一个[b]数据库是否存在性能问题[/b],基本上在[b]系统设计的时候就决定了[/b],这里说的系统设计包含软件的设计,数据库的设计和硬件的设计。软件的设计包含了软件系统架构的设计,软件代码的编写;数据库的设计包含了数据库的类型选择和根据数据库类型的所有数据库对象的设计;硬件的...2015-02-26 22:04:40 · 171 阅读 · 0 评论 -
<让oracle跑得更快-2> 锁和阻塞
[b]2.1 锁和阻塞[/b]首先,注意区别并发(concurrency)和并行(parallel)两个词。[color=red]在数据库中,并发[/color]的意思是说有超过两个以上的用户对同样的数据做修改(可能包括插入,删除和修改),而[color=red]并行[/color]的意思是说将一件事情分成很多小的部分,让每一部分同时执行,最后将执行结果汇总成最终结果。[b]没有并发,就没有锁...2015-02-26 22:24:47 · 150 阅读 · 0 评论 -
<让oracle跑得更快-3> latch和等待
经常有人把latch造成的[color=red]等待[/color]事件误认为是lock造成的[color=red]阻塞[/color],其实这是两个完全不同的概念。在性能优化上,如果能够区别开这两个因素引起的性能问题,将能极大地提高我们的性能分析判断能力。[color=red]Latch是oracle为了[b]保护内存结构[/b]而发明出的一种资源[/color],按照它保护的资源类型不同,...2015-02-27 21:18:17 · 94 阅读 · 0 评论 -
<让oracle跑得更快-4> 优化器(optimizer)
[color=red]Oracle数据库中优化器(optimizer)是sql分析和执行的优化工具,它负责制定sql的执行计划,也就是它负责保证sql执行的效率最高,[/color]比如优化器决定oracle以什么样的方式访问数据,是全表扫描(Full Table Scan, FTS),索引范围扫描(Index Range Scan)还是全索引快速扫描(Index Fast Full Scan, ...2015-02-27 21:27:52 · 140 阅读 · 0 评论 -
<让oracle跑得更快-5> 执行计划
如果要[b]分析[color=red]某条(不是整体性能,后面还会讲到awr报告,会再次说明)[/color]sql的性能问题[/b],通常来讲,[color=red]首先要去看sql的执行计划[/color],看看sql的每一步执行计划是否存在问题。如果一条sql平时执行得都很好,却有一天突然性能很差,如果排除了系统资源和阻塞的原因,那么基本上可以断定是执行计划出了问题。看懂执行计划便成了s...2015-02-28 21:48:10 · 101 阅读 · 0 评论 -
<让oracle跑得更快-6> 绑定变量
[b]变量绑定[/b]是[color=red]OLTP[/color]系统中一个非常值得关注的技术点。良好的变量绑定会使OLTP系统数据库中的sql执行速度飞快,内存效率极高;不绑定变量可能会使OLTP数据库不堪重负,资源被sql解析严重消耗,系统显得滞重而缓慢。[b]6.1 什么是变量绑定,为什么要做变量绑定[/b]在介绍绑定变量以前,首先要介绍一下sql究竟是如何被执行的,知道了s...2015-02-28 21:52:05 · 84 阅读 · 0 评论 -
<oracle-11> 数据类型
选择一个[color=red]正确的数据类型[/color],这看上去再容易不过了,但屡屡发生选择不当的情况。选择适当的数据类型至关重要,[color=red]而且很难事后再做改变[/color]。[b]11.1 oracle数据类型概述[/b]Oracle提供了22种不同的sql数据类型。(1) [b]char[/b]:这是一个定长字符串,会[color=red]用空格填充来达到...2015-02-08 20:06:24 · 127 阅读 · 0 评论 -
<oracle-10> 索引
[color=red][b]索引[/b][/color]是应用设计和开发的一个重要方面。如果有太多的索引,修改(插入,更新,合并和删除)的性能就会受到影响。如果索引太少,又会影响DML的性能。要找到一个合适的平衡点,这对于应用的性能至关重要。[b]10.1 oracle索引概述[/b]Oracle提供了多种[b]不同类型的索引[/b]供使用。简单的说,oracle中包括如下索引。[...2015-02-01 21:19:53 · 107 阅读 · 0 评论 -
<oracle-2> oracle文件
与[color=red]oracle实例[/color]相关的文件只有下面几种:[b]参数文件[/b](parameter file):这些文件告诉oracle实例在哪里可以找到控制文件,并且指定某些初始化参数,这些参数定义了某种内存结构有多大等设置。[b]跟踪文件[/b](trace file):这通常是一个服务器进程对某种异常错误条件作出响应时创建的诊断文件。[b]警告文件[/b]...原创 2014-12-22 20:57:44 · 94 阅读 · 0 评论 -
<oracle-3> 内存结构
这一篇主要讨论oracle的3个主要的内存结构:[b]1.系统全局区[/b](system global area, SGA):这是一个很大的[color=red]共享内存段[/color],几乎所有oarcle进程都要访问这个区中的某一点。[b]2.进程全局区[/b](process global area, PGA):这是一个[color=red]进程或线程专用的内存[/color],...2015-01-05 22:20:05 · 70 阅读 · 0 评论 -
<oracle-4> oracle进程
Oracle中的各个进程要完成某个特定的任务或一组任务,每个进程都会分配内部内存(PGA内存,前一篇讲过oracle内存结构,主要有SGA,PGA和UGA)来完成它的任务。Oracle实例主要有3类进程。1.[b]服务器进程[/b](server process):这些进程根据客户的请求来完成工作。[b]比如专用服务器进程和共享服务器进程都是服务器进程。[/b]2.[b]后台进程[/b](...2015-01-06 23:02:11 · 96 阅读 · 0 评论 -
<oracle-5> 锁(lock)和闩(latch)
开发[b]多用户[/b]、[b]数据库驱动[/b]的应用时,最大的难点之一是:一方面要力争取得[b]最大限度的并发[/b]访问,与此同时还要确保每个用户能以[b]一致[/b]的方式读取和修改数据。为此就有了[b]锁定(locking)机制[/b],这也是所有数据库都具有的一个关键特性,oracle在这方面更是技高一筹。[b]5.1 什么是锁[/b][b]锁(lock)机制用于管理对共享...2015-01-07 21:11:55 · 340 阅读 · 0 评论 -
<oracle-6> 并发多版本控制
[b]6.1 什么是并发控制[/b][b]并发控制(concurrency control)是数据库提供的函数集合[/b],允许多个人同时访问和修改数据。前面说过,锁是oracle管理共享数据库资源并发访问并阻止并发数据库事务之间“相互干涉”的核心机制之一。总结一下,oracle使用了多种锁,包括如下几种类型:[b]TX(事务处理锁),TM(DML队列)锁和DDL锁,latch和Mutex...2015-01-12 21:17:59 · 368 阅读 · 0 评论 -
<oracle-7> 事务
[b]事务(transaction)是数据库区别于文件系统的特性之一[/b]。在文件系统中,如果你正把文件写到一半,操作系统就崩溃了,这个文件就很可能会被破坏。这正是数据库中引入事务的主要目的,[b]事务会把数据库从一种一致状态转变为另一种一致状态[/b]。在数据库中提交工作时,可以确保要么所有修改都已经保存,要么所有修改都不保存。Oracle中的事务体现了所有必要的ACID特征。[c...2015-01-26 11:07:07 · 119 阅读 · 0 评论 -
<oracle-8> redo和undo
本章介绍oracle数据库中最重要的两部分数据:[b]redo与undo[/b]。Redo是oracle在线(或归档)重做日志文件中记录的信息,万一出现失败时可以利用这些数据来“重放”事务。Undo是oracle在undo段中记录的信息,用于取消或回滚事务。Redo和undo是DBA和开发人员都关心的主题,他们是DBA和开发人员之间的桥梁。但这里主要是面向开发人员。[b]8.1 什么是...2015-01-26 22:23:51 · 175 阅读 · 0 评论 -
<oracle-9> 数据库表
[b]9.1 表类型[/b]Oracle主要有以下9种表类型:(1) [b]堆组织表[/b](heap organized table):这些就是普通的标准数据库表。数据以堆的方式管理。增加数据时,会使用段中找到的第一个能放下此数据的自由空间。从表中删除数据时允许以后的insert和update[b]重用这部分空间[/b]。(2) [b]索引组织表[/b](index organize...2015-01-30 15:44:38 · 121 阅读 · 0 评论 -
<让oracle跑得更快-7> AWR性能报告
[b]AWR是oracle 10g下提供的一种性能收集和分析工具,[/b]可以看做10g以前statspack工具的一个升级版本,它能够提供一个时间段内[color=red]整个系统资源[/color]使用情况的报告,通过这个报告,我们就可以了解一个系统整个运行情况。读懂AWR报告并不是简单地通过理解里面的性能指标的含义就能掌握的。需要你相当了解oracle的内部机制,方方面面的内部机制,...2015-03-01 22:45:59 · 180 阅读 · 0 评论