服务器是AIX,数据库用的Oracle 10g,每月会在数据库上跑一个20多小时的任务。
任务运行完后生成ASH报告,发现TOP EVENT中的第一个是SQL*Net more data from client,百分比将近70%,第二个才是CPU+Wait for CPU,百分比为10%左右。
再次运行这个任务,在AIX中输入TOPAS查看系统情况,发现这个任务CPU占用率很低,但Pgsp确实所有任务中最高的,基本上是其他任务的10倍。
请教这里的高手,SQL*Net more data from client占第一位是否意味着这个任务运行时对内存需求比较大?另外要使这个任务运行时间更短,有什么可行的方法?

解决方案 »

  1.   

    分析你的SQL语句...看看做了些什么.
      

  2.   

    Lock_sga=true问题
    由于几乎所有的操作系统都支持虚拟内存,所以即使我们使用的内存小于物理内存,也不能避免操作系统将SGA换到虚拟内存(SWAP)。所以我们可以尝试使得SGA锁定在物理内存中不被换到虚拟内存中,这样减少页面的换入和换出,从而提高性能。但在这里遗憾的是,windows是无法避免这种情况的。下面我们来参考在不同的几个系统下怎么实现lock_sga  AIX 5L(AIX 4.3.3以上)  logon aix as root  cd /usr/samples/kernel  。/vmtune (信息如下) v_pingshm已经是1  。/vmtune -S 1  然后oracle用户修改initSID.ora 中 lock_sga = true  重新启动数据库