进程是指OS而言吧,用ps | wc就可以了
session可以查询v$session
每个连接用多少内存只能估算吧
IO倒是不清楚,top行不行?
session可以查询v$session
每个连接用多少内存只能估算吧
IO倒是不清楚,top行不行?
解决方案 »
- all_users中哪些是系统用户
- oracle的JOB技术问题
- 这个转换如何转?
- 急救~~~oracle插入的问题~~研究好一阵子了··还没出来~~在线等~~~
- 问题紧急,重复发贴,见谅: Performance manager两个问题
- 小弟今天清理数据库后导入遇到了ORA-IMP-00017的错误,求指点
- 帮忙看看我这段存储过程错在哪里?
- ORACLE数据库,字段类型是VARCHAR2(20),里面显示的是时间,如何都统一为10位
- 新手请教sqlplus与oracle基础问题
- with recursive的使用(mysql8.0)
- Oracle US7ASCII字符集在C#中对应的Encoding编码名称是什么?
- 我发现目前号称最高效的oracle分页SQL语句的一个重大漏洞,关心的网友请进来讨论
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;
主要查询监视进程、会话、内存、数据文件读写等等。
V$filestat
sys.ts$
V$datafile
sys.file$
...你可以参考utlbstat.sql、utlestat.sql里的语句修改一下
select count(*) from v$session;
另外
v$process表中可查到某SESSION对应到OS的进程号
有想法的赶快回复,快要给分结贴了。
/*************求低效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
/*****************如何监视表空间变化*****************************/
www.anysql.com.net
www.anysql.net