通过持续的调优工作和监测可以找到运行中应用程序的最佳值。此时,UNIX内核的内存不易减少,需要有效地调优数据库内存区域,使用更少内存发挥相同水平的性能。如果内核内存使用约100 MB,并发用户为30名,每个Oracle进程的内存为 10 MB,假定 sort_area_size为 1MB,按以下公式计算出430 MB。100 MB+30×=430 MB因此,物理内存为1 GB的系统,可分配大约600 MB的SGA使用。......
2023-11-01
系统调优时常会简化和跳过网络部分。其实网络性能比磁盘更慢,因此要保证最佳网络性能。检查网络性能时,主要使用ping和ftp来分析任意大小的数据包内数据的交换响应时间。在客户端上对服务器的ping和ftp进行测试,若无法维持适当的速度,则要仔细检查网络。例如笔者在调优某些站点的过程中,作为数据库服务器所在地的上海和只有一般用户的江浙分公司的性能差异较大,分析结果显示,上午 9点~10点网络使用量较多,网络出现了负载情况。网络性能监测使用客户端上的ping、ftp、tnsping,如图1-11所示。
图1-11 检查网络性能
根据经验,传输32位的ping测试时间低于50 ms时,才不会影响Oracle上应用程序的通信。最好可以对Oracle监听器进行tnsping检查(图1-12),这样便能同时验证网路的速度和监听器的性能,非常有用。
(www.chuimin.cn)
图1-12 对Oracle监听器进行tnsping检查
根据经验,监听器的响应时间也要低于100 ms。如果数值大于该值,要检查网络性能(ping)和监听器的繁忙率。如果Oracle监听器出现性能问题,通常是因为应用程序有太多访问请求,可在$ORACLE_ HOME/network/ log/ listener.log中查看访问请求的频繁度,如果每秒的访问请求超过3次,则要设置附加监听器并执行负载平衡,以消除监听器的瓶颈现象。
此外SQL * NET层中存在可以用于提高性能的SQL * NET参数,即SDU。 SDU(session data unit)可以看作是SQL * NET的缓存,用于指定通过SQN * NET的交换量。通常情况下,默认值为2 kB,可变更至32kB。可在服务器和客户端中分别设置该值,如果服务器和客户端的值不同,通信时会使用两个值中较小的值。如果通过此方法确定的SDU值小于应用程序上提取(fetch)的数据值,数据则会分开传输。因此,应用程序在服务器和客户端之间传输的数据较多时,为提高效率应指定较大的SDU值。但若指定太大的值则会造成浪费,导致效率低下。
有关数据库性能管理与调优的文章
通过持续的调优工作和监测可以找到运行中应用程序的最佳值。此时,UNIX内核的内存不易减少,需要有效地调优数据库内存区域,使用更少内存发挥相同水平的性能。如果内核内存使用约100 MB,并发用户为30名,每个Oracle进程的内存为 10 MB,假定 sort_area_size为 1MB,按以下公式计算出430 MB。100 MB+30×=430 MB因此,物理内存为1 GB的系统,可分配大约600 MB的SGA使用。......
2023-11-01
HASH JOIN是突出SORT MERGE JOIN优点并弥补其缺点的连接方法。该连接是对连接的对象表应用 HASH函数进行合并的方法。其特征是不仅只使用 HASH JOIN,而且提供通过并行处理大容量数据的最佳解决方案。但不建议在OLTP等状况下使用,因为HASH JOIN已为大容量处理进行优化,会占用大量系统资源。不会受JOIN条件(链路)索引有无的影响。2)使用标准由于链路使用HASH Key,因此仅用于EQUI-JOIN。在执行计划中成为HASHING对象的表始终在最前面,但如果是OUTER JOIN则完全相反。......
2023-11-01
SORT MERGE JOIN指各自访问两侧表的处理范围后逐一扫描排序结果,同时使用连接条件进行合并的方式。通过SORT MERGE JOIN引导调优的情况几乎不存在,但可能对减少RANDOM ACCESS、大容量处理对象集有效。以下将介绍SORT MERGE JOIN的其他特征以及能保证良好性能的情形。通常NESTED LOOP JOIN对待处理数据量较少的在线应用程序更为有效,因此请勿随意使用SORT MERGE JOIN。......
2023-11-01
为根据不同情况使用适当的索引,要学习各种类型的索引。因为只有明确了解表和索引的概念才能轻松解决复杂的内容。创建索引抽屉时,应考虑偶有发生的损益分歧点,考虑是否创建。总体来说,索引是用户使用SQL语句查找时为提高查找速度而创建的对象。但若创建太多索引,购买新书或废弃时,会产生额外的维护费用。这是由于添加或删除书籍时应更新现有的索引抽屉。......
2023-11-01
对象表的连接顺序和方法不同是为了加快访问速度。因此即使变更连接方法和顺序,结果值也不能有任何变化。连接时表的驱动顺序是性能中的重要组成部分。4)优化器的连接选择对于参与连接条件语句的列,索引位置对优化器决定执行计划时的连接顺序和方法有很大影响。连接列的两侧均无索引时,将SORT MERGE JOIN或HASH JOIN用作连接方法。......
2023-11-01
1)例子(一)正确使用SQL的例子(一)如图5-12所示。因此B.ORDD = : TrDay或B.ORDD = : WorkDay的扫描范围较窄,使用索引时响应速度非常快。在这种情况下,优化器使用OR从内部分为两个SQL语句并各自使用索引,再将执行结果合并为一个结果。图5-13正确使用SQL的例子(二)问题:连接的两个表的条件中决定扫描范围的条件是"AND SUBSTR LIKE : IN_org_cd AND SUBSTR < 600000"。因此可按以下方法变更条件公式并使用相应索引。......
2023-11-01
统计信息中保存有列选择度、数据量等大量信息,因此基于规则的优化器可以更灵活地创建执行计划。extent是由相关联的数据块构成的逻辑单位。否则,会因表的random access造成表扫描的平均成本增高。排序操作成本并非用于访问对象数据的成本,而是用于排序已提取数据的成本。若使用以特定列为标准排序的索引提取数据时,可以减少额外的排序操作成本。要了解SQL语句实际应访问的对象范围程度才能计算实际成本,这是非常重要的概念。......
2023-11-01
用于客户业务的应用程序,会根据开发者的能力而生成千变万化的逻辑和SQL语句,其质量和完成度对整个系统的性能具有极大的影响。应在分析执行计划后选择性地使用HINT,最好不超过全部SQL语句的20%。因为如果过多地使用HINT,发生索引重置等变更事项时会加重应用程序的修改负担。如果未生成适当的索引用于优化器制定最佳执行计划,那么无论怎样调优应用程序的逻辑也无法达到满意的性能。......
2023-11-01
相关推荐