易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle碎片小结

author:skate
time:2010-05-31
我们在使用windows的时候,都知道要定期整理磁盘碎片,因为磁盘碎片会影响性能,给管理上带来额外的
负担。那oracle更是如此,当随着数据增加,oracle处理海量数据本身就已经很费力了啊,如果再有大量
的碎片,那就是雪上加霜啊。所以碎片要引起dba的高度重视,尽早发现尽早处理。
碎片是怎么产生的呢?
简单理解就是由于更新和删除产生一些碎小的不能被再次使用的空间,根据每种不同的碎片他们的产生也是有区别的
block-level的碎片,而block又分为data block和index block,在data block中存放的是row数据,在index block
中存放的是索引键值数据,所以按上面所说,block-level碎片有细分为row-level碎片和Index Leaf Block-level碎片。
oracle的每一个对象都是存储在segment中,而oracle的最小分配单位是extents(区),在数据更新删除中也会产生碎片
这一级别的碎片就是segment碎片。segment又存在datafile中,而tablespace又是包含datafile的逻辑概念。所以这一层
是tablespace-level碎片;tablespace是在disk上存储,所以这一层就是disk-level碎片。
简单图示如下
disk-level fragmention
  tablespace-level fragmentation
    segment-level fragmentation
      block-level fragmentation
        row-level fragmentation
      index leaf block-level fragmentation
顺便提下oracle extents存在的理由
一个extents是由多个相连的block组成的,多个extents做成一个segment;extent是oracle的最小分配单位
extent的优点:
1. 提高空间分配,释放的效率,降低管理block的资源成本
2. 提高扫描的效率,因为extent是由相连blocks做成的特性,可以一次读取更多的内容,较低io读写次数
extent的缺点
容易产生碎片
如何确定产生了碎片的呢?
一。表空间碎片确定参考
由于自由空间碎片是由几部分组成,如范围数量、最大范围尺寸等,我们可用 FSFI--Free Space Fragmentation Index
(自由空间碎片索引)值来直观体现:
  FSFI=100*SQRT(max(extent)/sum(extents))*1/SQRT(SQRT(count(extents)))
可以看出,FSFI 的最大可能值为 100 (一个理想的单文件表空间)。随着范围的增加, FSFI 值缓慢下降,而随着最大范
围尺寸的减少,FSFI 值会迅速下降。通过如下语句查询F


相关文档:

Oracle多行记录合并/连接/聚合字符串的几种方法

什么是合并多行字符串(连接字符串)呢,例如:
SQL> desc test;
Name     Type          Nullable Default Comments
------- ------------ -------- ------- --------
COUNTRY VARCHAR2(20) Y       &nb ......

oracle 回退段维护

回滚段用于对数据库修改时, 保存原有的数据, 以便稍后可以通过使用ROLLBACK来恢复到修改前的数据; 另外, 回滚段可以为数据库中的所有进程提供读一致性. 因此, 回滚段设置的合理与否, 直接影响到数据库的性能.
回滚段的维护及查询
(1) 创建回滚段
__CREATE ROLLBACK SEGMENT RB01
__TABLESPACE RBS1
__STORAGE (
____I ......

Oracle 1z0 047 Exam


Exam Number/Code : 1z0-047
Exam Name : Oracle Database SQL Expert
Questions and Answers : 278 Q&As
Update Time: 2010-04-15
1. Which two statements are true regarding the execution of the correlated subqueries? (Choose two.)
A. The nested query executes after the outer query returns th ......

oracle 操作表示例

1.创建表:
       a. 创建xs表中计算机专业学生的备份
           Create table xs_jsj as select * from xs where zym=’计算机’;
       b.完整的例子:
      Create table test ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号