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
名称  
相关文档:
什么是合并多行字符串(连接字符串)呢,例如:
SQL> desc test;
Name Type Nullable Default Comments
------- ------------ -------- ------- --------
COUNTRY VARCHAR2(20) Y &nb ......
什么是合并多行字符串(连接字符串)呢,例如:
SQL> desc test;
Name Type Nullable Default Comments
------- ------------ -------- ------- --------
COUNTRY VARCHAR2(20) Y &nb ......
以前经常使用oracle的客户端工具toad来进行数据库的导入和导出,其实个人倒不喜欢用这个客户端工具,感觉功能很强大的一个工具,dba适用。开发还是用pl/sql比较好,简洁的界面。
C:\Users\Administrator>imp nwgis/pass file=e:/nwgis20100529.DMP log=dible_db full=y ignore=y
启动命令行,修改 ......
批处理(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 ......