关于block,extent,segment,tablespace
data block的大小是操作系统的data block的整数倍,ORACLE默认是8K,还有4K,16K,32k几种。
在参数文件里的参数为DB_nK_BLOCK_SIZE,可以通过PCTFREE,PCTUSER,FREELIST进行管理,从9i开始ORACLE可以自动管理。
extent是几个逻辑上相邻的data block组合在一块。
segment通常一张表是一个segment,一个INDEX,BLOB,CLOB各自占用一个segment。
tablespace是数据库中数据逻辑存储的地方,一个tablespace可以包含多个数据文件。上面三个的配置如果和tablespace的配置有冲突,以tablespace为准。
dba_tablespace_usage_metrics 可用于查看表空间剩余空间百分比
delete * from table和
truncate table的区别,truncate会重置high-water mark
任何一个表都有一列隐含的ROWID,唯一确定某一行。
commit并非直接写入数据文件,而是提交写redo log file请求,而后DBWn在合适的时候写入数据文件。
用dbca创建数据库时没选择安装example或者手动创建数据库后想创建example表,怎么办?
@?/rdbms/admin/utlsampl.sql
通常对 undo 有一个误解,认为 undo 用 于数据库物理地恢复到执行语句或事务之前的样子,但实际
上并非如此。
数据库只是逻辑地恢复到原来的样子,
所有修改都被逻辑地取消,
但是数据结构以及数据库 块
本身在回滚后可能大不相同。原因在于:在所有多用户系统中,可能会有数十、数百甚至数千个并发事务。
数据库的主要功能之一就是协调对数据的并发访问。也 许我们的事务在修改一些块,而一般来讲往往会有
许多其他的事务也在修改这些块。因此,不能简单地将一个块放回到我们的事务开始前的样子,这样会撤
销其他人 (其他事务)的工作!
阅读(939) | 评论(0) | 转发(0) |