Oracle性能调整,提升block的效率 |
本文标签:Oracle性能 在Oracle性能调整的要点中,·如何提升block的效率也是非常重要的,同样在提升block的效率中我们也要有一些东西是需要我们注意的 。以下的文章就是对在Oracle性能调整提升block的效率中需要注意的问题的详细介绍 。 1、避免动态分配的缺陷 创建本地管理的表空间;
合理设置segment的大小;
监控将要扩展的segment:
2、high water mark 记录在segment header block中,在segment创建的时候设定在segment的起始位置,当记录被插入的时候以Oracle性能调整的十大要点中的提升block的增量增加,truncate可以重设high water mark的位置,但delete不能 。
在full table scan中,oracle会读取high water mark以下的所有的数据块,所以high water mark以上的块也许会浪费存储空间,但不会降低性能 。
可以通过下列方法收回表中high water mark以上的块:
对于high water mark以下的块:
使用import/export工具:export数据;drop或truncate表;import数据 。或者利用alter table tanle_name move命令去移动表的存储位置(此时需要重建索引) 。
3、表统计 用analyize命令生成表统计,然后到dba_table查询相关信息 。
4、block size 通过下列方法可以最小化block的访问次数:
使用更大的Oracle性能调整的十大要点中的提升block size;紧密压缩行;阻止行镜像 。后两者存在冲突,越多的行被压缩在一个block里,越容易产生镜像 。Oracle性能调整的十大要点中的提升Block size 在数据库创建的时候设定,不能被轻易改变,是读取数据文件时最小的IO单元,大小范围是2K-64K,应该设置成OS块的整数倍,小于或等于OS IO时能读取的存储区域 。
较小的block size的优点:极少block竞争;有利于较小的行和随机访问 。缺点是存在相当高的成本,每个block的行数更少,可能需要读取更多的index块 。Block size的选择影响系统的性能,在一个OLTP环境中,较小的block size更合适,而在DSS环境中,适宜选择较大的block size 。 |