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. 安装 webpack

    安装 webpack看好webpack 对自动压缩和文件名自动md5更名,可解决客户端缓存问题.我的安装环境为 centos linux,root用户 1.安装Node及NPM.到NodeJS官网安装 ...

  2. IO-04. 混合类型数据格式化输入(5)

    本题要求编写程序,顺序读入浮点数1.整数.字符.浮点数2,再按照字符.整数.浮点数1.浮点数2的顺序输出. 输入格式: 输入在一行中顺序给出浮点数1.整数.字符.浮点数2,其间以1个空格分隔. 输出格 ...

  3. 重启Ubuntu后Hadoop的namenode起不来的解决办法‬

    因为Ubuntu每次重启之后都会将/tmp目录清空,而默认配置下每次hadoop name node -format总是将数据信息定位到/tmp/hadoop-${user.name}中,因此需要修改 ...

  4. 360等杀掉了app的主进程后 ,如何自动开启 如何防止被kill

    如何阻止360等进程查杀工具停止App后台进程安全软件优化内存时需要关闭没用的进程既然你同意使用360,,也允许了360的最高权限..那么他就有足够的权限来杀掉app后台进程. 一 如何保证app进程 ...

  5. Docker Registry搭建私有仓库

    利用Registry镜像搭建Docker私有仓库遇到了很多坑,说来也是找到的资料都是杂而不精的东西,所以也没少走了弯路,现在回过头看去感觉好多坑还是别人给挖的··· 不过努力的最终结果还是好的,因为找 ...

  6. SQL Server认证培训与考试

    Microsoft 技术专员 (MTA) - 数据库 https://www.microsoft.com/zh-cn/learning/mta-certification.aspx MCSA: SQL ...

  7. android知识杂记(二)

    记录项目中的android零碎知识点,用以备忘. AsyncQueryHandler 继承与handler,可以用于处理增删改(ContentProvider提供的数据) 例如:query = new ...

  8. MySQL1:MySQL函数汇总

    前言 MySQL提供了众多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求.本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时 ...

  9. 【C语言学习】《C Primer Plus》第8章 字符输入/输出和输入确认

    学习总结 1.缓冲区分为完全缓冲区(fully buffered)I/O和行缓冲区(line-buffered)I/O.对完全缓冲输入来说,当缓冲区满的时候会被清空(缓冲区内容发送至其目的地).这类型 ...

  10. nw.js如何处理拖放操作

    nw.js如何处理拖放操作 其实拖放(drag-drop)操作是Html5的功能,不是nw.js的内置API,那么我们采用Html5应用一般的处理方法就可以了. 首先我们看一下一个正常的页面,直接拖放 ...