Oracle数据库中索引树的结构与块尺寸
2007-05-12 12:22:29 来源:WEB开发网核心提示: 根据《Oracle数据库管理员认证:“Oracle 认证数据库管理专家”教师指南》一书的作者Christopher Foot的一篇文章,更大的块尺寸在某些情况下非常有帮助:“更大的块尺寸意味着在B-树索引的分支结点中有更多的空间来存储符号键,Oracle
根据《Oracle数据库管理员认证:“Oracle 认证数据库管理专家”教师指南》一书的作者Christopher Foot的一篇文章,更大的块尺寸在某些情况下非常有帮助:
“更大的块尺寸意味着在B-树索引的分支结点中有更多的空间来存储符号键,从而可以降低树的高度和提高索引查询的性能。”
在任何情况下,似乎有证据表明块尺寸影响树的结构,这为数据块影响树的结构提供了有力支持。
你可以使用大数据块(16-32)缓冲区来存储来自作为重复性大规模扫描对象的索引或表中的数据。这真的会提高性能么?一个小的但透漏内情的测试能回答这个问题。
在这个测试中,将对某个使用8K数据块尺寸的Oracle 9i数据库执行以下查询,这个数据库同时也使用16K缓冲区和16K大小的表空间。
select
count(*)
from
eradmin.admission
where
patient_id between 1 and 40000;
表eradmin.admission含有150,000行数据,并在patient_id列上建立了一个索引。对上面的查询语句执行EXPLAIN命令揭示出:它使用索引范围扫描来产生想要的目的结果:
Execution Plan
SELECT STATEMENT Optimizer=CHOOSE
(Cost=41 Card=1 Bytes=4)
1 0 SORT (AGGREGATE)
2 1 INDEX (FAST FULL SCAN) OF 'ADMISSION_PATIENT_ID'
(NON-UNIQUE) (Cost=41 Card=120002 Bytes=480008)
使用位于一个标准8K表空间的索引来执行这个查询(两次以消除分析活动并缓冲任何数据)产生了以下实时统计信息:
Statistics
0 recursive calls
0 db block gets
421 consistent gets
0 physical reads
0 redo size
371 bytes sent via SQL*Net to client
430 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接