《Oracle编程艺术》学习笔记(20)-块清除 .
数据库块的最前面有一个“开销”空间(overhead),这里会存放该块的一个事务表,对于锁定了该块中某些数据的各个“实际”事务,在这个事务表中都有一个相应的条目。->http://blog.csdn.net/fw0124/article/details/68...
《Oracle编程艺术》学习笔记(19)-数据库日志模式 .
数据库可以有两种LOG模式,ARCHIVELOG模式和NOARCHIVELOG模式。NOARCHIVELOG模式在线重做日志写满以后不会被归档,因此出现故障后无法恢复。可以使用select log_mode from v$database语句来查询,或者在sysdba权限下...
《Oracle编程艺术》学习笔记(17)-DEFERRABLE约束 .
默认情况下,完整性约束在整个语句得到处理后进行检查。但是可以创建延迟约束,把这个约束延迟到COMMIT或另外某个时间才检查。可以指定为· DEFERRABLE INITIALLY IMMEDIATE:创建可延迟的约束,但是初始状态是在语...
《Oracle编程艺术》学习笔记(16)-事务持久性
通常情况下,事务提交后,它的改变就是持久的。即使提交后数据库崩溃,改变也永久存储到数据库中了。但是,有2种例外情况:1)使用COMMIT语句新增的WRITE扩展10gR2以上版本新增特性,包括下面2种选择· COMMIT [WO...
《Oracle编程艺术》学习笔记(15)-事务原子性 .
事务的四大特性:ACID· 原子性(atomicity):事务中的所有动作要么都发生,要么都不发生。· 一致性(consistency):事务将数据库从一种一致状态转变为下一种一致状态。· 隔离性(isolation):一个事务的影响在...
《Oracle编程艺术》学习笔记(14)-写一致性
先解释2个概念:· 一致读(Consistent read):“发现”要修改的行时,所完成的获取就是一致读。· 当前读(Current read):得到块来实际更新所要修改的行时,所完成的获取就是当前读。可以通过tkprof报告看到每条...
《Oracle编程艺术》学习笔记(13)-Oracle的并发与多版本控制
事务隔离级别ANSI/ISO SQL 标准定义了4 种事务隔离级别,这些隔离级别是根据3个“现象”定义的1)脏读(dirty read) 能读取未提交的数据,也就是脏数据。2)不可重复读(nonrepeatable read)&nb...
《Oracle编程艺术》学习笔记(12)-Oracle的锁
以下是对Oracle锁定策略的总结:· Oracle只在修改时才对数据加行级锁。正常情况下不会升级到块级锁或表级锁。· 如果只是读数据,Oracle 绝不会对数据锁定。不会因为简单的读操作在数据行上锁定。· 写入器(writer...
《Oracle编程艺术》学习笔记(11)-Oracle进程
Oracle实例主要有3类进程(在Windows中,实际上是线程):·服务器进程(server process):这些进程根据客户的请求来完成工作。服务器进程包括专用服务器和共享服务器。http://blog.csdn.net/fw0124/article/detail...
《Oracle编程艺术》学习笔记(10)-SGA,PGA和UGA
Oracle有3个主要的内存结构:系统全局区(System Global Area,SGA)是一个很大的共享内存段,几乎所有Oracle进程都要访问这个区中的某一点。进程全局区(Process Global Area,PGA)是一个进程或线程专用的内存,其...
《Oracle编程艺术》学习笔记(9)-Oracle中的文件-数据文件
在 Oracle 中,可以用4 种文件系统机制存储数据。(一个数据库中可能包含下述所有类型文件)·“Cooked”操作系统(OS)文件系统这些文件存放在OS的文件系统中。可以使用OS工具来移动文件。Cooked 文件系统通常也会...
《Oracle编程艺术》学习笔记(8)-Oracle中的文件-警告日志文件
告警文件位于BACKGROUND_DUMP_DEST参数指定的目录下,文件名alert_<ORACLE_SID>.log。另外,11g之后,警告文件还另外生成一个xml版本,位于如下语句指定的目录下:select * from v$diag_info where name='Diag Alert...
《Oracle编程艺术》学习笔记(7)-Oracle中的文件-Trace文件
如果一个系统的执行效率比较低,一个比较好的方法是通过跟踪用户的会话并且使用tkprof工具使用排序功能格式化输出,从而找出有问题的SQL语句。例如首先从os上利用top命令找到当前占用cpu资源最高的一个进程的PID号99...
《Oracle编程艺术》学习笔记(6)-Oracle中的文件-参数文件
最重要的参数文件是数据库的参数文件,数据库的参数文件通常称为初始文件(init file),或init.ora文件。历史上它的默认名就是init<ORACLE_SID>.ora。从Oracle9i Release 1以来,对于存储数据库的参数设置,引入了...
《Oracle编程艺术》学习笔记(5)-Oracle中的文件
与实例相关的文件有:· 参数文件(parameter file):这些文件告诉Oracle实例在哪里可以找到控制文件,并且指定某些初始化参数,这些参数定义了某种内存结构有多大等设置。· 跟踪文件(trace file):这通常是一个...
《Oracle编程艺术》学习笔记(4)-DEDICATED SERVER,SHARED SERVER,TNS,LISTENER
实例和数据库之间的关系数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。· 实例是一组后台进程(Unix/Linux下)/线程(Windows下)和共享内存。· 数据库是磁盘上存储的数据集合。·...
《Oracle编程艺术》学习笔记(3)-SELECT FOR UPDATE SKIP LOCKED
考虑这么一个场景:等待处理的任务加入数据库某个表中,表的PROCESSED_FLAG列只有两个值:Y 和N。对于插入到表中的记录,该列值为N(表示未处理)。其他进程读取和处理这个记录时,就会把该列值从N更新为Y。位图索引...
《Oracle编程艺术》学习笔记(2)-开发成功的Oracle应用
Thomas Kyte在《Oracle编程艺术》这本书中总结了他的成功经验,摘录如下:成功经验总结:· 基于数据库(或依赖于数据库)构建的应用是否成功,这取决于如何使用数据库。另外,从我的经验看,所有应用的构建都围绕...
《Oracle编程艺术》学习笔记(1)-配置环境
1) SQL*Plus的login.sql 文件使用SQL*PLUS登陆时,SQL*PLUS会按照如下的顺序读取并执行脚本:· $oracle_home/sqlplus/admin/glogin.sql· 当前目录下的login.sql,或者设置一个环境变量SQLPATH(Windows下面通过注册...