通过持续的调优工作和监测可以找到运行中应用程序的最佳值。此时,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
使用UNIX时,可通过sar命令(图1-3)确认CPU的使用量。正常运行时,CPU建议使用程度为70%~80%,其中需维持20%~30%的空闲时间。如果空闲未达到20%~30%,系统使用量增加时(最后期限、结算、预算编制等),空闲可能为0%(此时空闲为0%可能表示100%使用CPU,但使用超过100%会判定为发生CPU瓶颈现象)。
如图1-3所示,使用sar指令监测CPU的使用量时,通常%idle要闲置20%~30%,但%idle比该值低时,则判定为当前OS的CPU发生不足现象。判断为CPU不足时,可以找到问题所在并加以解决,或者考虑增设CPU。 CPU使用量过大时,则先比较%usr、%sys、%wio的比率。使用数据库应用程序运营的系统,正常情况下显示顺序为%usr>%sys>%wio。如果%wio的值最高,则可以视为I/O等待在占用 CPU。因此,消除 I/O瓶颈现象或提高UNIX文件系统的工作缓冲区缓存的利用率,会减少整个CPU的使用量,这比提高缓冲区缓存的利用率,分配I/O更为有效。如果%sys的使用量高,可能是异常进程占用太多CPU。在这种情况下,找出当前系统上大量占用CPU的进程并分析原因。图1-4所示为在 sun micro systems设备上使用Berkeley ps指令按顺序查看大量占用CPU进程的方法。判断方法分别是 HP为top或glance, IBM为 monitor, DEC为 ps aux command。
图 1-3 sar指令
图1-4 查看大量占用CPU的进程(www.chuimin.cn)
在前面的结果中,需要仔细查看%CPU、%MEM、TIME,它们分别为CPU占用率、内存占用率、启动后CPU的累积使用值。此外,最上方显示的进程占用CPU最多。如果一个进程占用一个CPU的99%或100%并使用较长时间(1 min以上),需要确认该进程是哪种进程并且进行何种操作。这种进程肯定为异常进程,属于不必要地占用系统资源。要在OS上分析任何进程,需要确认该进程的系统调用(system call),此时可使用truss ( sun OS)、tusc(HP)指令等。图1-5所示为使用truss指令监测之前进程中占用CPU最多的23064进程的情况。该进程工作正常,无异常。
图1-5 根据进程确认系统调用
如果该进程异常占用较多CPU,则系统调用反复循环的情况非常多,须更加注意。有时使用truss不会输出或显示任何对象。此种情况为不经过系统调用而在用户模式下执行的情况(例如,for语句在同一个地方不停地执行)。truss命令会显示该进程执行的所有系统调用,因此该命令执行操作时会增加负载,只能在短时间内使用 truss监测进程。如果对任何系统调用都有问题,则可以使用UNIX man指令确认系统调用执行了何种操作(例如:$ man semop)。如果占用较多CPU并且分析结果显示进程有异常时,则确认该进程关联的业务后先停止该进程。这种进程为常进程,多数为只占用系统资源的进程。因此为保证系统正常运行,如果已收集了各种信息则停止进程。如果系统包含四个CPU并且有两个活跃的异常进程,则已占用系统50%的CPU,系统不可能正常工作。
有关数据库性能管理与调优的文章
通过持续的调优工作和监测可以找到运行中应用程序的最佳值。此时,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
在制定由优化器执行的SQL语句的执行计划过程中,提示为用户提供了可直接进行介入的方法。提示是用户对优化器下达的指示,但优化器可能会忽略不合理的提示。意味着除了RULE和DRIVING_SITE外的所有提示将选择CBO用作优化器。使用Orange Template Browser查看优化器提示如图2-8所示。图2-8Orange Template Browser查看优化器提示单击方框部分图标()、单击最顶端菜单的[View]—[Template Browser]或按快捷键 Alt+F2则会运行[Template Browser]。......
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语句的方法,因为很少能像SQL调优这样可以在短时间内以低成本得到效果。因此,为了性能考虑,开发者应不遗余力地投入时间和精力进行SQL调优。如果对未优化的SQL进行调优,则计划增设容量的许多企业都无须执行容量增设。大量数据排序的SQL或者大量访问数据块的未优化的SQL,可能会过量地使用内存。就因为这种现象,才会因未优化的SQL而出现磁盘I/O增加的情况。SQL的优化过程必然也涉及索引的优化。......
2023-11-01
实例已启动意味着数据库系统运行所需的后台进程已启动,并且处于“确保内存可用于数据处理”的状态,这种实例的调优将成为DBMS性能调优的重要基础。1) DBMS 内存 区域——SGASGA 是作为实例启动时确保控制器信息保存和数据处理空间的内存区域,存在于实例访问的所有进程共享的内存区域中。SGA相关调优的基准基本以命中率评价为主,通过适当地调整相关参数,将实际运行反映到评价结果中。......
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
图5-14考虑索引生成标准从根本上来说创建索引是为了加快查找速度。但如果创建特定索引,反而会对整体执行性能造成不良影响。因此为确定特定表的索引构成,需要调查访问表的SQL的访问模式,并基于调查结果做出综合性的判断。此外,添加索引时最好计算查找负载量减少和DML负载量增加造成的大致损益。因此生成两个索引对整个系统较为有效。......
2023-11-01
相关推荐