1. Truncate

Truncate是DDL命令。表的物理位置是保存在数据字典中表的定义的一部分。首次创建时,在数据库的数据文件内给表分配了一个固定大小的空间。这就是所谓的区间并且为空。那么当插入行时,就会填充该区间。填满以后,就会自动给表分配更多的区间。因此表由一个或多个区间组成,它们保存行。除了跟踪区间分配之外,数据字典还跟踪分配给表的空间已经使用了多少。这通过高水位线(high water mark)来完成。高水位线是已经使用的最后一个区间中的最后一个位置;高水位线以下的所用空间都在某段时间被使用过,高水位线以上的空间还没有被使用。

注意,在高水位线以下可能有大量当时没有使用的空间;这是因为已经用delete命令删除了行。在表中插入行会提高高水位线。删除它们则高水位线的位置不变;它们占用的空间依然被分配给表,但可以自由地插入更多行。

截断表会重置高水位线。在数据字典内,高水位线记录的位置被移到表的第一个区间的开头。因为Oralce假设没有行在高水位线之上,因此此效果就是从表中删除所用行。清空表,并且一直是空的,直到后续的插入重新抬高高水位线为止。按照这种方法,一个仅仅在数据字典中进行更行的DDL命令,就可以销毁表中的几十亿行。

2. ACID

ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)

原子性指一个事物的所有部分必须都完成,或都不完成。

一致性指查询的结果必须与数据库在查询开始时的状态一致。

隔离性指对于其他部分来说,未完成的(也是就未提交的)事物必须不可见。在某个事务进行期间,只有执行该事务的一个会话能看见所做的变更,而其他所有会话看见的都是没有变更的数据。

持久性指一旦某个事务完成,数据库就不可能丢失这个事务。

3. 除了用户发出的COMMIT或者ROLLBACK之外,还有一些情况会隐式终止事务

1> 发出DDL或者DCL命令

2> 退出用户工具(SQL*PLUS、SQL Developer或者其他工具)

3> 用户会话终止

4> 系统奔溃

如果用户发出DDL(CREATE、ALTER或DROP)或者DCL(GRANT或REVOKE)命令,就会提交正在处理的事务。这是因为DDL和DCL本身都是事务。而SQL中不可能嵌套事务。

退出正在使用的工具,事务就会终止-但是使用COMMIT终止还是ROLLBACK终止,则取决于使用的工具以及工具退出的方式。

如果客户的会话因为某种原因而失败,那么数据库总是会回滚事务。

如果数据库服务器因为某种原因奔溃,那么当它下一次启动时,就会回滚来自所有会话的所有之前正在处理的事务。

4.  写入重做日志的变更向量是所有的变更向量:应用于数据库(表和索引)的更改以及应用于撤销段的更改。既包括已提交事务,也包括未提交事务。

5.  所有DML语句至少都需要两种锁:受影响行上的排他锁,以及包含受影响行的表上的共享锁。排他锁能够防止其他会话干预指定的行,而共享锁则能够阻止其他会话使用DDL语句修改表的定义。这两种锁会被自动请求。如果某条DML语句在指定行上无法获取所需的排他锁,那么会挂起这条语句直至获得所需的排他锁。

执行DDL命令需要使用所涉及对象上的排他锁。只有在针对指定表的所有DML事务结束,且行上的排他锁以及表上的共享锁都被解除之后,我们才可以获得执行DDL命令所需的排他锁。

6. ADR的位置由参数DIAGNOSTIC_DEST确定。默认位置是ORACLE_BASE。如果尚未设置ORACLE_BASE,则默认位置是ORACLE_HOME/log目录。在DIAGNOSTIC_DEST中,将有一个ADR_BASE目录,即DIAGNOSTIC_DEST/diag。ADR_BASE中具有每个Oralce产品(如RDBMS或数据库监听器)对应的目录。每个产品目录包含每个产品实例的目录,即实例的ADR_HOME。数据库实例的ADR_HOME是:ORACLE_BASE/diag/rdbms/database_name/instance_name,其中,database_name是数据库名称,而instance_name是实例名称。例如:/u01/app/oracle/diag/rdbms/orcl/orcl。

ADR_HOME/trace目录是参数USER_DUMP_DEST(用户会话生成的跟踪文件)和BACKGROUND_DUMP_DEST(后台进程生成的警报日志和跟踪文件)的默认值。

Oracle Concept的更多相关文章

  1. oracle/mysql经典电子书籍pdf下载

    Oracle LZ写的书,深入结合oracle设计.优化/SQL优化.应用层架构与优化.大量生产案例,敬请期待... Oracle编程艺术 深入理解数据库体系结构(第3版) 链接:https://pa ...

  2. orace owi介绍

    第1章 OWI介绍记录和观察进程所经历的等待现象的功能和界面以及方法论,统称为OWI,也就是Oracle Wait Interface.等待事件的P1.P2.P3值可以通过v$session_wait ...

  3. oracle_hc.sql

    select event,count(1) from gv$session group by event order by 2;exec dbms_workload_repository.create ...

  4. 采用oracle官方文件(11G)——初步Concept

    采用oracle官方文件(11G)示例 这里是oracle官方文档界面,想了解oracle,阅读官方文档是唯一的方法,大致了解官方文档的使用,对官方文档有一个更直观的认识.文档可通过文章关联的链接查看 ...

  5. oracle官方文档的阅读方法

    Concept 包含了 oracle 数据库里面的一些基本概念和原理, 比如 数据库逻辑结构, 物理结构, 实例结构, 优化器, 事务等. PDF 460页 Reference 包含了动态性能视图, ...

  6. Deploying JRE (Native Plug-in) for Windows Clients in Oracle E-Business Suite Release 12 (文档 ID 393931.1)

    In This Document Section 1: Overview Section 2: Pre-Upgrade Steps Section 3: Upgrade and Configurati ...

  7. ASP.NET Padding Oracle Attack EXP

    #!/usr/bin/perl## PadBuster v0.3 - Automated script for performing Padding Oracle attacks# Brian Hol ...

  8. Streaming data from Oracle using Oracle GoldenGate and Kafka Connect

    This is a guest blog from Robin Moffatt. Robin Moffatt is Head of R&D (Europe) at Rittman Mead, ...

  9. 如何查看 oracle 官方文档

    Concept 包含了 oracle 数据库里面的一些基本概念和原理, 比如 数据库逻辑结构, 物理结构, 实例结构, 优化器, 事务等. PDF 460页 Reference 包含了动态性能视图, ...

随机推荐

  1. iOS之NSString类中compare方法的陷阱

    typedef NS_ENUM(NSInteger, NSComparisonResult) {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDe ...

  2. JavaScript 基础第三天

    一.前言 在前天的内容我们提到了有关于JS的一些语言结构,这些语言结构都是语法中最为基本的内容必须予以熟记并可以灵活掌握. 二.引入 在今天内容中我们将讨论两个很重要的概念,数组与函数. 三.重点内容 ...

  3. leetcode sort List

    Sort a linked list in O(n log n) time using constant space complexity. /** * Definition for singly-l ...

  4. javascript replace正则替换时调用函数替换的使用

    以下函数将替换英文方式下的单引号和双引号,当然change函数编写决定了你要替换什么? String.prototype.repSpecChar=function()      {           ...

  5. 【异常】VS中运行HTTP 无法注册URL

    参考资料 http://www.java123.net/detail/view-449670.html http://www.cnblogs.com/jiewei915/archive/2010/06 ...

  6. openSUSE 11 上的配置可以Xmanager远程桌面

    openSUSE 11 上的配置(适用于默认图形环境为KDE的Linux): 1.配置KDM. openSUSE 11的默认图形环境为KDE,虽然可以同时安装GDM和KDM,但默认只启动了KDM.所以 ...

  7. 使用F#来实现哈夫曼编码吧

    最近算法课要求实现哈夫曼编码,由于前面的问题都是使用了F#来解决,偶然换成C#也十分古怪,报告也不好看,风格差太多.一开始是打算把C#版本的哈夫曼编码换用F#来写,结果写到一半就觉得日了狗了...毕竟 ...

  8. note of introduction of Algorithms(Lecture 3 - Part1)

    Lecture 3(part 1) Divide and conquer 1. the general paradim of algrithm as bellow: 1. divide the pro ...

  9. 玩转正则之highlight高亮

    程序员在编写代码的时候少不了和字符串以及“查询”打交道,两者的交集中有一个叫做正则表达式的的东西,这家伙用好了可以提高编程效率,用不好的话...你可以先去好好学一学. 关于正则的使用,举个简单的例子: ...

  10. Beauty Contest

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28417#problem/F 题目大意:给n个点,求相聚最远距离的平方(输出整形) 集体思 ...