打破oracle数据库树立的种种神话
2007-05-09 12:15:55 来源:WEB开发网在完美的世界中,你只要使用绝对正确的参数构建一次即可,永远都不用再重新构建,我恐怕这种情况永远都不会在现实世界中出现。就像期望只清扫你的房间一次,而这个房间里面装满了吵吵闹闹的10几岁的孩子——这是毫无意义的。
今天,能够理解表和索引具有很高频率的并发插入、更新和删除动作是一件好事情,它可以很快地获得次佳的结构并需要重新组织以便位多块扫描操作减少I/O操作(使用Oracle的dbms_redefinition包,更改索引移动/重新构建,更改索引接合,或者甚至是根据可用性需求更改表移动)。索引平衡的概念是分两个叉的,B树总是高度平衡的,它也可以变得稀疏或者向右旋转的,所以就变得更宽或者负载不平衡。
神话:多个块尺寸不会改善性能
这个神话是不朽的,因为多个块尺寸最初是为了支持可传输的表空间而设计的,同时一些人还不能看到多个块尺寸带来的另一方面很重要的好处。不同的块尺寸带来的最大的好处就是更加有效地利用了受到限制的内存区域(db_cache_size, db_32k_cache_size等)以及能够减少多块扫描读取的逻辑I/O次数的对象智能隔离。
今天,Metalink 提示说多个块尺寸参数是Oracle性能调整中最重要的部分了,并且还说Robin Schumacher 等专家们都证明了Oracle的索引可以在较大的块尺寸中构建更加优化的B树结构。还有,重新组织高DML 索引,或者对随机单行读取(唯一索引访问)小行数据的时候使用小的块尺寸,可以减少db_cache_size 的尺寸,并且会因为更多的块适合了缓冲区的大小而减少PIO。
例如,一些实验试图用小的、人造的单用户实验来证明这个断言,并且提出多个块尺寸并不能给现实世界的数据库带来任何好处。然而,现实生活中的店铺却报告了一个有关多个块尺寸和索引用的32k块尺寸的截然不同的结果:
- ››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修改表的两种方式
更多精彩
赞助商链接