Oracle Concept
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的更多相关文章
- oracle/mysql经典电子书籍pdf下载
Oracle LZ写的书,深入结合oracle设计.优化/SQL优化.应用层架构与优化.大量生产案例,敬请期待... Oracle编程艺术 深入理解数据库体系结构(第3版) 链接:https://pa ...
- orace owi介绍
第1章 OWI介绍记录和观察进程所经历的等待现象的功能和界面以及方法论,统称为OWI,也就是Oracle Wait Interface.等待事件的P1.P2.P3值可以通过v$session_wait ...
- oracle_hc.sql
select event,count(1) from gv$session group by event order by 2;exec dbms_workload_repository.create ...
- 采用oracle官方文件(11G)——初步Concept
采用oracle官方文件(11G)示例 这里是oracle官方文档界面,想了解oracle,阅读官方文档是唯一的方法,大致了解官方文档的使用,对官方文档有一个更直观的认识.文档可通过文章关联的链接查看 ...
- oracle官方文档的阅读方法
Concept 包含了 oracle 数据库里面的一些基本概念和原理, 比如 数据库逻辑结构, 物理结构, 实例结构, 优化器, 事务等. PDF 460页 Reference 包含了动态性能视图, ...
- 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 ...
- ASP.NET Padding Oracle Attack EXP
#!/usr/bin/perl## PadBuster v0.3 - Automated script for performing Padding Oracle attacks# Brian Hol ...
- 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, ...
- 如何查看 oracle 官方文档
Concept 包含了 oracle 数据库里面的一些基本概念和原理, 比如 数据库逻辑结构, 物理结构, 实例结构, 优化器, 事务等. PDF 460页 Reference 包含了动态性能视图, ...
随机推荐
- java-IO
框架图 IO(Input Output)流IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式,用于操作流的对象都在IO包中. 流按操作数据分为两种:字节流与字符流 .流按流向分为:输 ...
- faceBook Pop动画库手动添加版本
本人将pop的框架直接拖进工程里面然后按照教程导入头文件#import "POP.h"发现报找不到文件的错误,于是我手动将pop库里面所有类似于#import <POP/XX ...
- 利用HtmlAgilityPack库进行HTML数据抓取
主要介绍基于XPATH的文本分析方式的实现,代码如下: using System; using System.Collections.Generic; using System.Linq; using ...
- Java Spring IOC用法
Java Spring IOC用法 Spring IoC 在前两篇文章中,我们讲了java web环境搭建 和 java web项目搭建,现在看下spring ioc在java中的运用,开发工具为In ...
- [Xamarin] 取得所有已安裝軟體清單 (转帖)
最近會用到,簡單記錄一下,抓取所有該手機已經安裝的軟體清單 結果圖: 首先介紹一下Layout : \Resources\Layout\Main.axml <?xml version=&quo ...
- 故障排查:是什么 导致了服务器端口telnet失败?
telnet命令的主要作用是与目标端口进行TCP连接(即完成TCP三次握手). 当服务端启动后,但是telnet其监听的端口,却失败了.或者,当服务端运行了一段时间后,突然其监听的端口telnet不通 ...
- 【转】Backbone标准例子——通讯录
参考:http://z2009zxiaolong.iteye.com/blog/1847833 感觉不错的例子,模型.视图.路由等知识点都用到了:),将此文中的源码转载如下: http://dmyz. ...
- 5天玩转C#并行和多线程编程 —— 第五天 多线程编程大总结
5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编 ...
- 熟用js中的Date
js中的Date类型是使用UTC(国际协调时间)自1970年1月1日午夜(零时)开始,经过的毫秒数来保存日期. 1. 创建日期对象 ---> 获得当前日期和时间 var now = new ...
- AngularJS入门教程1--配置环境
首先需要下载AngualrJS,下载地址 https://angularjs.org/ 官方网站提供2种下载使用AngularJS方法: 1. 去GitHub下载 ,点击按钮会跳转到GitHub页面, ...