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. 好玩儿的Game

    1. 种类: 威佐夫游戏, Bash游戏, Nim游戏, 等. 2. 理论: 胜态一定可以通过某种策略走向必败态; 而必败态采取任何策略都将走向胜态. 用图论的话来说, 因为必败态只能走向胜态, 所以 ...

  2. UNET学习笔记2 - 高级API(HLAPI)

    高级API是在实时传输低级API基础上建立起来的,为多人游戏提供大量通用的组件.通过HLAPI开发者仅需少量的工作就可以搭建多人联网游戏. HLAPI 使用命名空间 UnityEngine.Netwo ...

  3. .Net mvc 后台传单引号错误&#39

    今天调试半天程序 结果出现JS 无法eval() 网上找个半天解决办法无果 最后 是因为后台输出单引号’ 到前台为&#39 解决办法 给一个隐藏文本框或者标签赋值 再取出来就能显示单引号了

  4. Hibernate自动创建表

    只要在hibernate.cfg.xml添加这句话,就可以自动生成数据表 <property name="hibernate.hbm2ddl.auto">update& ...

  5. java上传图片或者文件

    package com.pat.postrequestemulator; import java.io.BufferedReader; import java.io.DataInputStream; ...

  6. 消息智能路由组件SmartRoute

    消息传递在软件开发过程中是一件很常见的事情,而在不同的场景所使用消息传递方式也有所不同,在对象之间制定相关接口方法和对象结构,对于进程之间可能使用内存共享或一些通讯产品,在不同服务器之的消息通讯则使用 ...

  7. HTTP解析

    前言 B/S网络架构的核心是HTTP,掌握HTTP对一个从事互联网工作的程序员来说非常重要.要理解HTTP,最重要的是要熟悉HTTP的HTTP Header,HTTP Header控制着互联网上成千上 ...

  8. 用“MEAN”技术栈开发web应用(二)express搭建服务端框架

    上一篇我们讲了如何使用angular搭建起项目的前端框架,前端抽象出一个service层来向后端发送请求,后端则返回相应的json数据.本篇我们来介绍一下,如何在nodejs环境下利用express来 ...

  9. JavaScript思维导图—数组

    JavaScript思维导图-来自@王子墨http://julying.com/blog/the-features-of-javascript-language-summary-maps/

  10. mac下apache配置,解决It is not safe to rely on the system's timezone settings.

    之前一直转windows平台下做php,很少遇到问题.现在有了macbook,还在慢慢的熟悉中,搭建php开发环境,熟悉mac系统文档组织还有命令,颇费功夫. 今天我在mac下做一个php的练习,用到 ...