WEB开发网
开发学院数据库Oracle DBA 应遵循的 Oracle 调优原则 阅读

DBA 应遵循的 Oracle 调优原则

 2007-05-09 12:14:27 来源:WEB开发网   
核心提示: 上面我们已经提到,私有排序区域的大小是有 init.ora 中的 sort_area_size 参数决定的,DBA 应遵循的 Oracle 调优原则(6),每个排序所占用的大小由 init.ora 中的 sort_area_retained_size 参数决定,当排序不能在分配的空间中完成

上面我们已经提到,私有排序区域的大小是有 init.ora 中的 sort_area_size 参数决定的。每个排序所占用的大小由 init.ora 中的 sort_area_retained_size 参数决定。当排序不能在分配的空间中完成时,就会使用磁盘排序的方式,即在 Oracle 实例中的临时表空间中进行。

磁盘排序的开销是很大的,有几个方面的原因。首先,和内存排序相比较,它们特别慢;而且磁盘排序会消耗临时表空间中的资源。 Oracle 还必须分配缓冲池块来保持临时表空间中的块。无论什么时候,内存排序都比磁盘排序好,磁盘排序将会令任务变慢,并且会影响 Oracle 实例的当前任务的执行。还有,过多的磁盘排序将会令 free buffer waits 的值变高,从而令其它任务的数据块由缓冲中移走。

接着,让我们看一下 Oracle 的竞争,并且看一下表的存储参数的设置是如何影响 SQL UPDATE 和 INSERT 语句的性能的。

调整 Oracle 的竞争

Oracle 的其中一个优点时它可以管理每个表空间中的自由空间。 Oracle 负责处理表和索引的空间管理,这样就可以让我们无需懂得 Oracle 的表和索引的内部运作。不过,对于有经验的 Oracle 调优专家来说,他需要懂得 Oracle 是如何管理表的 extent 和空闲的数据块。对于调整拥有高的 insert 或者 update 的系统来说,这是非常重要的。

要精通对象的调整,你需要懂得 freelists 和 freelist 组的行为,它们和 pctfree 及 pctused 参数的值有关。这些知识对于企业资源计划( ERP )的应用是特别重要的,因为在这些应用中,不正确的表设置通常是 DML 语句执行慢的原因。

对于初学者来说,最常见的错误是认为默认的 Oracle 参数对于所有的对象都是最佳的。除非磁盘的消耗不是一个问题,否则在设置表的 pctfree 和 pctused 参数时,就必须考虑平均的行长和数据库的块大小,这样空的块才会被有效地放到 freelists 中。当这些设置不正确时,那些得到的 freelists 也是 “dead”块,因为它们没有足够的空间来存储一行,这样将会导致明显的处理延迟。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:DBA 遵循 Oracle

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接