![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Oracle
文章平均质量分 70
shuilovejie
这个作者很懒,什么都没留下…
展开
-
(转)Oracle完全检查点和增量检查点详解
原文地址: http://hi.baidu.com/zty598416146/blog/item/3ab92b4f180f111fb2de0539.html 由于Oracle中LGWR和DBWR工作的不一致,Oracle引入了检查点的概念,用于同步数据库,保证数据库的一致性。在Oracle里面,检查点分为两种:完全检查点和增量检查点。下面我们分别介绍这两种检查点的作用:1、完全检...原创 2012-07-07 16:10:43 · 309 阅读 · 0 评论 -
Oracle事务浅谈
数据库引入事务的主要目的是:事务会把数据库从一种一致状态转变为另一种一致状态。在数据库中提交工作时,可以确保要么所有修改都已经保存,要么所有修改都不保存。另外,还能保证实现了保护数据完整性的各种规则和检查。 这对于我们的一些应用是至关重要的,比如一个转账业务,从A账户转出1000元到B账户,操作1:从A账户减少1000元,操作2:B账户增加1000元。假如不能保证这两个...2012-04-12 23:50:36 · 132 阅读 · 0 评论 -
Oracle redo与undo浅析
一. 什么是redo(用于前滚数据) redo也就是重做日志文件(redo log file),Oracle维护着两类重做日志文件:在线(online)重做日志文件和归档(archived)重做日志文件。这两类重做日志文件都用于恢复;其主要目的是,万一实例失败或介质失败,它们能够恢复数据。 二. 什么是undo(用于回滚数据) 从概念...2012-04-17 23:12:14 · 903 阅读 · 0 评论 -
数据库表之表类型
从前只有一种类型的表,这千真万确,原先确实只有一种“普通”表。管理这种表就像管理“一个堆”一样。后来,Oracle又增加 了几类更复杂的表。如今,除了堆组织表外,还有聚簇表(共有3种类型的聚簇表)、索引组织表、嵌套表、临时表和对象表。每种类型的表都有不同的特征,因此 分别适用于不同的应用领域。 oracle有9种表类型: 1. 堆组织表:这种表类型的数...2012-08-20 20:52:08 · 770 阅读 · 0 评论 -
Oracle数据库表之段
一. 段类型 Oracle中的段(segment)是占用磁盘上存储空间的一个对象,不同类型的段存储了不同的数据,管理存储空间的方式也不相同。 主要几种段类型: 1. 聚簇:用于存储多个表上的相关数据,将多个表相关联的部分存储到一个数据块上,方便查找与访问。 2. 表:用于保存一个表的数据,通常与索引段联合使用。最常见的...原创 2012-08-20 22:10:23 · 273 阅读 · 0 评论 -
Oracle并行执行简介
一. 概念介绍并行执行,就是将一个大型串行任务物理地划分为多个较小的部分,这些较小的部分可以同时进行处理。这就好比盖房子,有一些事情可以同时进行,比如:铺设管线和电路配线可以同时进行。尽量让能同时进行的事情同时处理,能够大大提高整个任务的执行速度。 二. 并行执行使用场景并行执行并不是万能药,有时候并行执行不但没有提高执行速度,反而拖累了执行速度。比如你有一台4CPU的...2012-12-03 17:01:29 · 157 阅读 · 0 评论 -
Oracle 并行查询
并行查询允许将一个SQL SELECT语句划分为多个较小的查询,每个部分的查询并发地运行,然后会将各个部分的结果组合起来,提供最终的答案。 我们来看一个例子: 1. 执行如下一串SQL语句,创建一个叫big_table的表,期间会让你录入 1的值(想要往big_table表里面插入多少行数据),我录入的是1000万行。 create table ...2012-12-04 20:56:17 · 849 阅读 · 0 评论 -
Oracle sql*loader 简介
SQL*Loader(SQLLDR)是Oracle的高速批量数据加载工具。这是一个非常有用的工具,可用于多种平面文件格式向Oralce数据库中加载数据。SQLLDR可以在极短的时间内加载数量庞大的数据。它有两种操作模式。 传统路径:(conventional path):SQLLDR会利用SQL插入为我们加载数据。 直接路径(direct path):...2012-12-15 15:07:00 · 155 阅读 · 0 评论 -
Oracle 游标与绑定变量
oracle执行SQL语句就是打开游标,解析游标,执行游标,关闭游标的过程。了解游标的这几个阶段,我们也就弄清楚了SQL执行过程,这是本文要介绍的第一个内容。另外,在java编程中,我们通常说要使用预处理的形式来写SQL语句(比如:select * from table where A = ?),也就是绑定变量的形式。因为,这样效率高。那么,为什么使用绑定变量就比不使用绑定变量(比如:se...原创 2012-12-17 16:16:52 · 147 阅读 · 0 评论 -
Oracle数据库表几个术语解释
续上篇, 五. PCTFREE和PCTUSED 一般而言,PCTFREE参数用来告诉Oracle应该在块上保留多少空间来完成今后的更新,默认情况,这个值是10%。如果块中自由空间的值高于这个值,这个块就是自由的。PCTUSED告诉Oracle当前不自由块(比如这个块的自由空间只剩下不到10%)的自由空间要达到多大才能再次自由,默认值是...2012-09-06 22:13:26 · 203 阅读 · 0 评论 -
(转)ORACLE SQL_TRACE的使用
原文地址: http://www.blogjava.net/xzclog/archive/2010/11/13/337985.html “SQL TRACE”是Oracle提供的用于进行SQL跟踪的手段,是强有力的辅助诊断工具。在日常的数据库问题诊断和解决中,“SQL TRACE”是非常常用的方法。一般,一次跟踪可以分为以下几步:1、界定需要跟踪的目标范围,并使用适当的命令启用所...原创 2012-12-27 16:40:35 · 72 阅读 · 0 评论 -
oracle多版本机制副作用
我们已经知道oracle多版本机制能够提供一致性的答案,而且还有高度的并发性。但是真的就没有其他不好的一面吗? 案例1: 假设有一个资源调度程序(可以用来调度会议室,投影仪等资源),业务规则是:在给定的时间段不能将一种资源分配给多人。这里涉及到资源表(Resources)与资源调度表(Secludes)。 我们一般的实现方式是,先查询某一时...原创 2012-03-31 22:41:07 · 83 阅读 · 0 评论 -
Oracle事务隔离级别
数据库中的事务基本作用是将数据库从一致状态转换到另一种一致状态,那么事务隔离级别就是定义了一个事务对于另外一个事务做出的修改有多“敏感”。也就是不同的隔离级别定义了事务相互影响的程度,下面分别介绍一下几种不同的隔离级别。 1. READ UNCOMMITTED 其实,oracle不支持这种隔离级别。这种隔离级别允许脏读(也就是可以读取到用户未提交的数据),支持这...2012-03-30 23:10:33 · 171 阅读 · 0 评论 -
Oracle 临时表
1. 临时表与redo,undo之间的关系 临时表不会为他们的块生成redo信息,也就是你在对临时表做插入,修改等操作的时候,如果突然断电,是不能利用重做日志文件来进行恢复的。临时表会生成undo信息,并且这个undo信息会计入重做日志文件,因此临时表也会生成redo信息。这是一种例外情况,为了保存undo信息。临时表生成redo信息,主要是为了用户自己可能需要回滚操作,比如...2012-07-17 19:41:36 · 66 阅读 · 0 评论 -
oracle字符串类型介绍
Oracle中有4种基本的字符串类型,分别是CHAR、VARCHAR2、NCHAR和NVARCHAR2。在Oracle中,所有串都以同样的格式存储。在数据库块上,最全面都有一个1~3字节的长度字段,其后才是数据,如果数据为NULL,长度字段则表示一个但字节值0xFF。 如果一个包含"hello world"的varchar2(80), 块中结构如图所示: ...原创 2012-10-29 09:31:55 · 1339 阅读 · 0 评论 -
Oracle number类型的语法和用法
number类型的语法很简单,就是: number(p,s) p,s都是可选的,假如都不填,p默认为38,s默认为-48~127。 1. 精度(precision),或总位数。默认情况下,精度为38位,取值范围是1~38之间。也可以用字符*表示38。 2. 小数位置(scale),或小数点右边的位数。小数位数的合法值为-48...2012-10-29 09:52:55 · 465 阅读 · 0 评论 -
Oracle日期类型介绍
oracle与日期有关的有三种类型:date,timestamp与interval。DATE和TIMESTAMP类型存储精度可变的固定日期/时间,二者区别是,后者秒可以精确到小数,另外还可以有时区之分。。INTERVAL类型可以很容易地存储一个时间量,如“8个小时”或“30天”。将两个日期相减,就会得到一个时间间隔(INTERVAL);例如,将8小时间隔加到一个TIMESTAMP...2012-10-29 11:22:02 · 783 阅读 · 0 评论 -
Oracle 分区概述
一. 概念 分区是将一个表或者索引物理地分解成多个更小的部分。对于访问数据库的应用来看,逻辑上看只有一个表或者索引,因为访问和普通表或索引一模一样。但物理上这个表可能被分成了数十个独立的分区,每一个分区都是独立的对象,可以独自处理。 二. 如何区分数据 分区主要有利于非常大的表和索引,将一个大表或者索引分成很多独立的小部分更容易进行处理...2012-10-30 16:34:39 · 157 阅读 · 0 评论 -
Oracle 表分区机制介绍
一. 概念 一个表被分成了很多个独立的分区,那么每一个分区应该存储哪些数据,这就是表分区机制要解决的问题。 二. 表分区机制概述 目前oracle中有四种分区机制: 1. 区间分区:可以指定应当存储在一起的数据区间。例如,时间戳在Jan-2005内的所有记录都存储在分区1中,时间戳在Feb-2005内的所有记录都存储在...2012-10-30 19:43:31 · 274 阅读 · 0 评论 -
Oracle 索引分区介绍
一. 概述 和表分区一样,索引也可以进行分区。oracle中对索引进行分区有两种方式: 1. 每一个索引分区对应一个表分区,而且只索引该表分区。也就是有多少个表分区就有多少个索引分区。称之为局部分区索引。 2. 索引按照区间分区(或者散列分区),一个索引可以指向任何表分区的数据。索引分区个数与表分区个数没有关系,称之为全局分区索引。 ...2012-10-31 14:47:28 · 120 阅读 · 0 评论 -
Oracle 分区和性能
理论上,我们进行表分区都是为了提升性能,加快查询速度。但是有的时候,不但不能加快查询速度,反而拖累的查询速度。下面举的一个例子就是这样的: 假设某一个表是按照主键散列分区,创建表如下所示: create table t ( OWNER, OBJECT_NAME, SUBOBJECT_NAME, OBJECT_ID, DATA_OBJECT_ID,...原创 2012-11-01 20:38:53 · 343 阅读 · 0 评论 -
(转)Oracle 10g中如何使用TKPROF性能分析工具介绍
Oracle具有打开一个相当底层的跟踪能力的工具,就是TKPROF。一旦启用跟踪,Oracle将所有的SQL和应用程序使用的顶层PL/SQL调用记录到服务器上的跟踪文件中。启用TKPROF在开始运行TFPROF之前需要开启一些设置,可以将其编辑称为一个脚本程序:starttfprof.sql,其中包含的内容: alter session set timed_statistics=true;...原创 2012-11-01 20:40:22 · 123 阅读 · 0 评论 -
Oracle并发与多版本介绍
所谓并发控制,就是数据库本身允许多用户同时操作某一条记录,同时保证所访问数据的正确性。 oracle里面可以使用锁来管理共享资源的并发访问,oracle里面的锁大概有这么几种: 1. TX锁:修改数据的事务在执行期间会获得这种锁。比如在这个事务期间修改了某一行数据,还未提交,那么这一行数据会被锁定(这时候不允许其他事务修改,但允许读取...2012-03-29 22:19:43 · 93 阅读 · 0 评论 -
oracle 查看当前在执行SQL
--查看当前正在执行的sqlselect a.EVENT, a.SQL_ID, a.MACHINE, b.SQL_TEXT, b.SQL_FULLTEXT,b.FIRST_LOAD_TIME,b.LAST_LOAD_TIME,b.LAST_ACTIVE_TIME from v$session a, v$sql bwhere a.SQL_ID = b.SQL_ID ...原创 2012-12-27 16:42:18 · 214 阅读 · 0 评论 -
Oracle索引组织表
索引组织表(Index organized table, IOT)就是存储在一个索引结构中的表。与堆组织表无序存储不同的是,IOT中的数据按主键存储和排序。 相比对组织表,索引组织表能够节省一部分空间,因为,使用堆组织表时,我们必须为表和表的主键上的索引分别留出空间。而IOT则可以省去主键索引的开销,因为数据就是按顺序存储的,可以当做索引使。换句话说,如果你只会通...2012-09-29 15:22:02 · 110 阅读 · 0 评论 -
Oracle 获取执行计划
一. 背景介绍 当我们质疑一条SQL语句执行缓慢,进而尝试是否有改进可能性的时候。我们往往需要查看这条SQL语句对应的执行计划,那么在oracle中如何获取执行计划是本文要介绍的内容。 二. 获取方法 oracle提供四种获取执行计划的方法: 1. 执行SQL语句explain plan,然后查询结果输出表(普...2013-01-22 22:50:49 · 68 阅读 · 0 评论 -
(转)Oracle 游标(cursor)说明
原博客地址:http://blog.csdn.net/tianlesoftware/article/details/6638062 一. Cursor说明 Oracle里的cursor分为两种:一种是shared cursor,一种是session cursor。 1.1 Shared cursor 说明 sharedcursor就是指缓...原创 2013-08-15 20:17:11 · 145 阅读 · 0 评论 -
(转)shared pool 原理
原博客地址:http://blog.csdn.net/robinson1988/article/details/6037925 由于shared pool中最重要的是library cache,所以本文主要讲解Library cache的结构,library cache latch,library cache lock,library cache pin。 What is sh...原创 2013-08-18 22:58:23 · 65 阅读 · 0 评论 -
(转)Oracle cursor_sharing 参数 详解
原博客地址:http://blog.csdn.net/tianlesoftware/article/details/6551723 一. 官网的说明http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/initparams042.htm#REFRN10025 1.1 CURSOR_SHARING...原创 2013-08-25 23:04:56 · 106 阅读 · 0 评论 -
Oracle事务原理探究1--oracle核心技术读书笔记五
1. 冲突解决 假如有一个系统只有你和我两个用户,并且我们都在持续对系统中一小部分数据做修改和查询操作。 如果你正在数据库中做一批修改操作,而我正在做查询,我一定不能看到你所做的修改,直到你告诉我可以看到你所做的所有更改才行(你提交了事务)。因此在oracle内部,必须有一个高效的办法来识别哪些数据我可以看到,哪些数据我不可以看到。 从相反的角度...2014-12-29 21:18:42 · 107 阅读 · 0 评论 -
Oracle事务原理探究2--读书笔记五
续上篇...3. 数据块访问与undo 任何时候当会话查看一个数据块的时候,都需要保证看到的是适当的数据版本。从外部观点来看,这意味着会话不应该看到任何未提交的数据,或许还不应该看到查询开始后修改并提交的数据(取决于事务的隔离级别),这称为数据的读一致性版本。 下面我们来谈谈oracle怎么实现读一致性版本的:3.1 设置场景 我们...2015-01-05 13:46:53 · 127 阅读 · 0 评论 -
(转)Oracle 调整SGA、PGA大小
SQL> show parameter sga; SQL> alter system set sga_max_size=4096M scope=spfile;System altered.SQL> alter system set sga_target=4096M scope=spfile;System altered. 如果是RAC环境,需要这样增...原创 2013-10-31 13:25:29 · 961 阅读 · 0 评论 -
Oracle基本数据改变原理浅析(redo与undo)--oracle核心技术读书笔记一
在oracle中我们做一些更新操作,oracle底层是怎么流转的呢,就是这篇文章要讲解的。 一. 原理 假设我们在一个已经更新了很多条分散记录的OLTP系统中,更新了一行数据。那么这个更新的真实步骤如下: 1. 创建一个重做改变向量,描述如何往undo块插入一条undo记录(也就是描述undo块的改变) 2. 创建一个重做改变...2014-09-14 17:00:23 · 365 阅读 · 0 评论 -
oracle如何保证事务的ACID原则--oracle核心技术读书笔记二
在事务中有四个通用的原则是所有数据库都必须遵守的,简称ACID原则,下面简单概述一下oracle是怎样实现这四个原则的。 一. 原子性(Atomicity):一个事务要么全部执行,要么全部都不执行 在oracle中,当我们做一次变更的时候,系统会自动创建一条undo记录来描述怎样撤销这次变更。也就是说,当执行到一个事务的中间时,如果有其他用户想访问我...2014-09-21 11:18:36 · 234 阅读 · 0 评论 -
(转)undo系列学习之Oracle IMU及Redo Private Strands技术
原博客地址: http://blog.csdn.net/dba_waterbin/article/details/7820858 在传统的undo管理模式中,oracle对undo和data block是一视同仁。这样大致会有三种弊端: 1)事务开始时,存放事务表的段头不在内存,server process需要将此i/o上来 2)存放旧值的回滚块不在内存 3...原创 2014-09-27 23:09:07 · 134 阅读 · 0 评论 -
Oracle redo 复杂度--oracle核心技术读书笔记三
一. 概述 我们知道,在oracle中,每修改一条数据都会生成一条重做数据(也就是redo,里面记录了修改后的内容)。目的就是为了将修改的数据备份,方便今后重做。现在有一个问题。oracle中只要修改数据,都会生成redo,这些redo会存放在一个叫做重做日志缓冲区里面。如果同时多个回话在修改数据,都要往重做日志缓冲区写入内容,就存在为同一片内存区域竞争的问题。存在竞争,就存在...2014-09-29 22:13:47 · 91 阅读 · 0 评论 -
(转)关于semi-join/anti-join的一点探讨
原博客地址:http://space.itpub.net/15480802/viewspace-703260 create table dept (deptno number(5), dname varchar2(20));create table emp (deptno number(5), name varchar2(20));insert into dept values(1,...原创 2013-08-14 21:20:12 · 1072 阅读 · 0 评论 -
(转)Oracle中Hint深入理解
原文出处:http://czmmiao.iteye.com/blog/1478465 Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担。但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比。此时就需要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成执行计划,从 而使语句高效的运行。例如,如果...原创 2014-01-07 19:48:55 · 88 阅读 · 0 评论 -
Oracle dbms_xplan包简介
一. 用途介绍 dbms_xplan包用于展示执行计划。执行计划存储在计划表中,库缓存中和AWR中,dbms_xplan包能从这些地方将执行计划取出,格式化之后展示给我们。 二. dbms_xplan输出 dbms_xplan的输出就是执行计划的信息,从上往下看一般是这样的: 第一部分: ...2013-01-24 21:59:39 · 331 阅读 · 0 评论 -
Oracle 解释执行计划
一. 执行计划树形结构 执行计划展示的时候类似于一个表格形式,其实它是一个树形结构。该树形结构不仅阐述了SQL引擎执行操作的顺序,也阐明了它们之间的关系。树上的每一个节点都代表一个操作,比如表访问,连接,排序等。各操作之间存在父子关系,具体规则如下: 1. 父有一个或多个子 2. 子只有一个父 3. 唯一没有父的是...原创 2013-01-31 16:28:26 · 148 阅读 · 0 评论