Chinaunix首页 | 论坛 | 博客
  • 博客访问: 41718
  • 博文数量: 13
  • 博客积分: 1956
  • 博客等级: 上尉
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-05 23:06
文章分类

全部博文(13)

文章存档

2011年(3)

2010年(5)

2008年(5)

我的朋友

分类: Oracle

2010-12-31 22:04:53

关于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 用 于数据库物理地恢复到执行语句或事务之前的样子,但实际
上并非如此。
数据库只是逻辑地恢复到原来的样子,
所有修改都被逻辑地取消,
但是数据结构以及数据库 块
本身在回滚后可能大不相同。原因在于:在所有多用户系统中,可能会有数十、数百甚至数千个并发事务。
数据库的主要功能之一就是协调对数据的并发访问。也 许我们的事务在修改一些块,而一般来讲往往会有
许多其他的事务也在修改这些块。因此,不能简单地将一个块放回到我们的事务开始前的样子,这样会撤
销其他人 (其他事务)的工作!


阅读(856) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~