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

oracle索引碎片

author:skate
time:2010-05-31
索引页块碎片(Index Leaf Block Fragmentation)
这篇文章将会回答如下问题:
什么是索引页块碎片?什么时候被重用?
什么是半空索引碎片?什么时候被重用?
oracle的标准索引结构是B×tree结构,一个B×tree结构由三种block组成
根块(root block):在B×tree里有且只有一个block,所有访问索引都从这开始,root block下有很多child blocks。
分支块(Branch blocks):这是中间层,branch block是没有什么限制的,它是随着leaf block的增加而增加的,branch block一般是4层,如果多于4层,就影响性能了。在我们删除行时,branch block是不被删除的。
叶块(leaf block):叶块是最底层,上面存储着索引条目和rowid
索引和表数据是级联关系的,当删除表数据的时候,索引条目也会被自动删除,这样在index leaf
block就会产生碎片,这也就是在OLTP系统上有大量更新的表上不建议创建大量的索引,很影响性能
有的人说删除过的索引条目空间不会被再用,因为在应用中不会再有insert相同的数据。其实这个
说法不完全对的,除了半空叶块外,其他的删除的索引空间是可被再利用的。
eg:
本文的所有实验都是在如下平台测试:
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0      Production
TNS for 32-bit Windows: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
SQL>
SQL>  create table test_idx as select seq_test.nextval id,2000 syear, a.* from d
ba_objects a;
表已创建。
SQL> insert into test_idx  select seq_test.nextval id,2001 syear, a.* from dba_o
bjects a;
已创建50780行。
SQL> insert into test_idx  select seq_test.nextval id,2002 syear, a.* from dba_o
bjects a;
已创建50780行。
SQL> commit;
提交完成。
SQL> desc test_idx
 名称                               


相关文档:

oracle imp命令行的使用

   以前经常使用oracle的客户端工具toad来进行数据库的导入和导出,其实个人倒不喜欢用这个客户端工具,感觉功能很强大的一个工具,dba适用。开发还是用pl/sql比较好,简洁的界面。
  C:\Users\Administrator>imp nwgis/pass file=e:/nwgis20100529.DMP log=dible_db full=y ignore=y
启动命令行,修改 ......

oracle中pro*c的学习


oracle中pro*c的学习
 一 Pro*C 程序概述:
1.什么是Pro*C程序
在ORACLE数据库管理和系统中, 有三种访问数据库的方法;
(1) 用SQL*Plus, 它有SQL命令以交互的应用程序访问数据库;
(2) 用第四代语言应用开发工具开发的应用程序访问数据库,这些工具有SQL*froms,QL*Reportwriter,SQL*Menu等;
(3) 利用在 ......

oracle 回退段维护

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

批处理(bat文件)自动启动/关闭oracle服务

批处理(bat文件) 自动启动/关闭oracle服务
判断oracle 服务状态
如果服务处于启动状态,就关闭服务;
如果服务处于关闭状态,就启动服务。
@ECHO OFF
for /f "skip=3 tokens=4" %%i in ('sc query OracleServiceORCL') do set "zt=%%i" &goto :next
:next
if /i "%zt%"=="RUNNING" (
ECHO Stoping Oracle ......

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 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号