10g online-performance tuning guide -笔记11

4.2.1  表压缩
堆表能够以对于任何应用都透明的压缩形式来储存。表压缩主要是针对只读环境下的操作,并且在DML操作上会有一些问题。然而,它增加了很对读操作的性能,尤其是对于IO有限制的系统来说。

在一个数据块中的压是自我包含的,意味着所有的信息都需要在那个数据块中被解压缩出来并且可用。一个快也可以在buffer cache中式保持压缩状态。表压缩不仅仅降低磁盘存储,而且还有内存的使用。尤其是对于buffer cache的需求。性能改善时通过降低访问表所发生的io量和增加buffer cache的命中率。

4.2.1.1 估计压缩因素
表压缩时通过忽略单个块中的重复的值来实现的。块中所有行和列中重复的值只存储一次,称作那个块的符号表。所有出现的这些值都会从符号表中作一个简短的引用。这个压缩对于表中有很多重复值的情况是非常高效的。

在压缩表之前,你需要估计期望的压缩因子。压缩因子是用来定义压缩后存储信息所用的块的数量除以压缩前存储信息的块的数量的比值。这个压缩因子可以通过一部分有代表性的数据块压缩后的数量和压缩前的比较来进行估计。经验显示将近1000个数据块就能提供非常精确的压缩因子的估计。注意抽样的块越多。结果就越精确。

4.2.1.2 优化来获得更好的压缩比例
oracle在没有特优化的时候就可以获得一个好的压缩因子。作为数据库的管理者,或者应用的开发者,你可以在压缩真正发生的记录上尽量调整压缩因子。调优在一些情况下轻微改善了压缩因子,但是在另外的情况下大大改善了压缩因子。


为了改善压缩因子,你不得不在一个数据块中增加重复值的可能性。这个压缩因子会依赖于指定的列和列的对,以及这些列上行的长度的平均值。oracle表压缩不仅仅压缩单列的重复值,并且尽可能的使用多列的值的对。没有一个非常细节的对于数据分布的理解,就很难预测到最优的值。

可以参考oracle database data warehousing guide 来获得表的压缩和分区的更多信息。

4.2.2 收回未使用的空间
随着时间的推移,由于做了很多的更新和删除的操作段空间会变成很多碎片变成空闲的空间。这导致了稀疏的粒子对象,这样将会在DML操作的时候性能会下降。

oracle数据库提供了一个segment advisor提供了 根据一个对象中空间碎片的程度来决定是否一个对象有可用的回收空间的 建议。

可以查看 oracle database administrators guide 和oracle database 2 Day DBA来查看关于segment advisor的信息

如果一个对象有需要回收的可用空间,你可以压紧和收缩数据库段,或者在数据库的段的最后重新分配未使用的空间。

oracle database administratorsguide 有关于回收未使用空间的讨论。
oracle database sql reference 提供了怎样使用sql来收缩或者重新分配未使用空间的语句。


4.2.3 索引数据
最有效率的创建索引的方法是在数据加载之后创建索引。通过这种方式,空间管理开始变得更加简单,不需要当发生行插入的时候维护索引。SQL loader会自动做这个。但是如果你是用其它的方法去初始化数据加载。你就需要手动做这个。再加上,索引的创建可以使用parallel参数在create index的语法中进行并行。然而,sqlLOADER不能做这个,所以在加载数据后必须手动并行创建索引。

4.2.3.1 为排序数据指定内存
在表上创建的索引包含数据,数据必须被排序。这个排序必须用尽可能快的方法。oracle建议你通过设置PGA_AGGREGATE_TARGET 初始化参数使得sql工作区系统可以自动调整。

4.3 共享服务器的性能考虑
使用共享服务器减少进程数量以及消耗的内存。共享服务器对于很多OLTP用户执行断断续续的事务的系统是很有好处的。

使用共享服务器对于高链接率的数据库会比私有模式好很多。使用共享服务器模式,当接受到一个链接请求,一个可用的分发器会同时链接到并发的链接请求上。使用私有服务器,换句话说,一个指定链接的私有服务器会为每一个连接请求连续的初始化。

当共享服务器模式使用后数据库的某些功能的性能能够得到提高,并且会有另一些功能会稍微性能降低。例如,当执行并行的时候,一个会话迁移到另一个共享服务器的活动会被阻止。

一个会话会保持不迁移,甚至当一个客户端的请求已经被处理了。因为并不是所有的用户信息都已经存储到UGA中了,如果一个服务器要处理客户端的请求,那么没有存储到UGA中的这部分用户状态会是无法访问的。为了避免这个,单个共享服务器常常需要保持对于一个用户会话的响应。

当使用一些特性的时候,你可以能需要配置更多的共享服务器,因为一些服务器可能服务器可能会以过分的时间来响应用户会话。

这部分介绍了oracle体系结构中如何减少进程竞争。
--使用分发器标志竞争 特定视图
--为共享服务器标志竞争

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24799772/viewspace-678650/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24799772/viewspace-678650/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值