进程是指OS而言吧,用ps | wc就可以了
session可以查询v$session
每个连接用多少内存只能估算吧
IO倒是不清楚,top行不行?

解决方案 »

  1.   

    process是进程,session是会话找使用CPU多的用户session select a.sid,spid,status,substr(a.program,1,10) prog,a.terminal,osuser,value/60/100 value 
    from v$session a,v$process b,v$sesstat c 
    where c.statistic#=12 and c.sid=a.sid and a.paddr=b.addr order by value desc;
      

  2.   

    这个得打开数据库跟踪统计内存得使用啊什么的,
    主要查询监视进程、会话、内存、数据文件读写等等。
    V$filestat 
    sys.ts$
    V$datafile
    sys.file$
    ...你可以参考utlbstat.sql、utlestat.sql里的语句修改一下
      

  3.   

    在OS下进程数ps -ef |grep LOCAL|wc -l在数据库中(dba)会话数
    select count(*) from v$session;
    另外
    v$process表中可查到某SESSION对应到OS的进程号
      

  4.   

    一个会话(session)好像可以对应多个操作系统进程(process),对不对?
    有想法的赶快回复,快要给分结贴了。
      

  5.   


    /*************求低效sql***************/
    SELECT EXECUTIONS , DISK_READS, BUFFER_GETS, ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio, ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run, SQL_TEXT FROM V$SQLAREA WHERE EXECUTIONS>0 AND BUFFER_GETS > 0 AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8 ORDER BY 4 DESC; 
    /*************求低效sql***************//***********如何监视示例的等待**********/
    select event,sum(decode(wait_time,0,0,1)) prev,
    sum(decode(wait_time,0,1,0)) curr,count(*)    
     from v$session_wait
    group by event order by 4
    /***********如何监视示例的等待**********//***********如何监视回滚段的争用情况**********/
    select c.name,d.waits,d.gets,d.waits/d.gets
    from v$rollstat d,v$rollname c
    where c.usn= d.usn
    /***********如何监视回滚段的争用情况**********//***********如何监视表空间的io比例**********/
    select b.tablespace_name name,b.file_name,a.phyrds,a.phyblkrd,a.phywrts,a.phyblkwrt
    from v$filestat a,dba_data_files b
    where a.file# = b.file_id 
    order by b.tablespace_name
    /***********如何监视表空间的io比例**********//***********如何监视文件系统空间的io比例**********/
    select substr(b.file#,1,2) fdsf,
           substr(b.name,1,50) name,
           a.phyrds,a.phyblkrd,a.phywrts,a.phyblkwrt
    from v$filestat a,v$datafile b
    where a.file# = b.file#
    /***********如何监视文件系统空间的io比例**********//***********如何监视SGA的命中率**********/
    select a.value+b.value logical_reads,c.value  phys_reads
    ,
    round(100*((A.VALUE+B.VALUE)-C.VALUE)/(A.VALUE+B.VALUE))
    from
    v$sysstat a,v$sysstat b,v$sysstat c
    where a.statistic# = 38 and b.statistic# = 39 
    and   c.statistic# = 40
    /***********如何监视SGA的命中率**********//***********如何显示所有数据库对象的类别和大小**********/
    select type,count(name) cnt,sum(source_size),sum(parsed_size),sum(code_size)
         ,sum(code_size),sum(source_size)+sum(parsed_size)+sum(code_size)+sum(code_size)  from dba_object_size
    group by type 
    /***********如何显示所有数据库对象的类别和大小**********/
    /**********监控SGA 中重做日志缓存区的命中率,应该小于1%*********/
    SELECT name, gets, misses, immediate_gets, immediate_misses,
    Decode(gets,0,0,misses/gets*100) ratio1,
    Decode(immediate_gets+immediate_misses,0,0,
    immediate_misses/(immediate_gets+immediate_misses)*100) ratio2
    FROM v$latch WHERE name IN ('redo allocation', 'redo copy');/**********监控SGA 中重做日志缓存区的命中率,应该小于1%*********//**********************监控内存和硬盘的排序比率,最好使它小于.10,增加sort_area_size*************/
    SELECT name, valueFROM v$sysstat WHERE name IN ('sorts (memory)', 'sorts (disk)');
    /**********************监控内存和硬盘的排序比率,最好使它小于.10,增加sort_area_size*************//*****************如何监控当前数据库谁在运行什么SQL 语句?***************/
    SELECT osuser, username, sql_text
    from v$session a, v$sqltext b
    where a.sql_address =b.address
    order by address, piece;
    /*****************如何监控当前数据库谁在运行什么SQL 语句?***************/
    SELECT osuser, username, sql_text
    from v$session a, v$sqltext b
    where a.sql_address =b.address
    order by address, piece;/*****************如何监控当前数据库谁在运行什么SQL 语句?***************//*****************如何监控字典缓冲区?*****************************/
    SELECT (SUM(PINS - RELOADS)) / SUM(PINS) "LIB CACHE" FROM V$LIBRARYCACHE;
    SELECT (SUM(GETS - GETMISSES - USAGE - FIXED)) / SUM(GETS) "ROW CACHE"
    FROM V$ROWCACHE;
    SELECT SUM(PINS) "EXECUTIONS", SUM(RELOADS) "CACHE MISSES WHILE
    EXECUTING" FROM V$LIBRARYCACHE;
    后者除以前者,此比率小于1%,接近0%为好。
    SELECT SUM(GETS) "DICTIONARY GETS",SUM(GETMISSES) "DICTIONARY CACHE GET
    MISSES"
    FROM V$ROWCACHE
    /*****************如何监控字典缓冲区?*****************************//*****************如何监视表空间变化*****************************/
    SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
           D.TOT_GROOTTE_MB "表空间大小(M)",
           D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
           TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
                         2),
                   '990.99') "使用比",
           F.TOTAL_BYTES "空闲空间(M)",
           F.MAX_BYTES "最大块(M)"
      FROM (SELECT TABLESPACE_NAME,
                   ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
                   ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
              FROM SYS.DBA_FREE_SPACE
             GROUP BY TABLESPACE_NAME) F,
           (SELECT DD.TABLESPACE_NAME,
                   ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
              FROM SYS.DBA_DATA_FILES DD
             GROUP BY DD.TABLESPACE_NAME) D
     WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
     ORDER BY 4 DESC
    /*****************如何监视表空间变化*****************************/
      

  6.   

    看看高手的杰作,里面有你要的东东
    www.anysql.com.net
      

  7.   

    看看高手的杰作,里面有你要的东东
    www.anysql.net