![]() |
|
性能相关内容
1、捕捉运行很久的SQL
| column username format a12 column opname format a16 column progress format a8 SELECT Username, Sid, Opname, Round(Sofar * 100 / Totalwork, 0) || '%' AS Progress, Time_Remaining, Sql_Text FROM V$session_Longops, V$sql WHERE Time_Remaining <> 0 AND Sql_Address = Address AND Sql_Hash_Value = Hash_Value; |
2、求DISK READ较多的SQL
| SELECT St.Sql_Text FROM V$sql s, V$sqltext St WHERE s.Address = St.Address AND s.Hash_Value = St.Hash_Value AND s.Disk_Reads > 300; |
3、求DISK SORT严重的SQL
| SELECT Sess.Username, SQL.Sql_Text, Sort1.Blocks FROM V$session Sess, V$sqlarea SQL, V$sort_Usage Sort1 WHERE Sess.Serial# = Sort1.Session_Num AND Sort1.Sqladdr = SQL.Address AND Sort1.Sqlhash = SQL.Hash_Value AND Sort1.Blocks > 200; |
4、监控索引是否使用
| alter index &index_name monitoring usage; alter index &index_name nomonitoring usage; select * from v$object_usage where index_name = &index_name; |
5、求数据文件的I/O分布
| SELECT Df.NAME, Phyrds, Phywrts, Phyblkrd, Phyblkwrt, Singleblkrds, Readtim, Writetim FROM V$filestat Fs, V$dbfile Df WHERE Fs.File# = Df.File# ORDER BY Df.NAME; |
6、查看还没提交的事务
| select * from v$locked_object; select * from v$transaction; |
7、回滚段查看
| SELECT Rownum, Sys.Dba_Rollback_Segs.Segment_Name NAME, V$rollstat.Extents Extents, V$rollstat.Rssize Size_In_Bytes, V$rollstat.Xacts Xacts, V$rollstat.Gets Gets, V$rollstat.Waits Waits, V$rollstat.Writes Writes, Sys.Dba_Rollback_Segs.Status Status FROM V$rollstat, Sys.Dba_Rollback_Segs, V$rollname WHERE V$rollname.NAME(+) = Sys.Dba_Rollback_Segs.Segment_Name AND V$rollstat.Usn(+) = V$rollname.Usn ORDER BY Rownum |
8、查看系统请求情况
| SELECT Decode(NAME, 'summed dirty write queue length', VALUE) / Decode(NAME, 'write requests', VALUE) "Write Request Length" FROM V$sysstat WHERE NAME IN ('summed dirty queue length', 'write requests') AND VALUE > 0; |
9、计算data buffer 命中率
| SELECT a.VALUE + b.VALUE "logical_reads", c.VALUE "phys_reads", Round(100 * ((a.VALUE + b.VALUE) - c.VALUE) / (a.VALUE + b.VALUE)) "BUFFER HIT RATIO" FROM V$sysstat a, V$sysstat b, V$sysstat c WHERE a.Statistic# = 40 AND b.Statistic# = 41 AND c.Statistic# = 42; SELECT NAME, (1 - (Physical_Reads / (Db_Block_Gets + Consistent_Gets))) * 100 h_Ratio FROM V$buffer_Pool_Statistics; |
10、查看内存使用情况
| SELECT Least(MAX(b.VALUE) / (1024 * 1024), SUM(a.Bytes) / (1024 * 1024)) Shared_Pool_Used, MAX(b.VALUE) / (1024 * 1024) Shared_Pool_Size, Greatest(MAX(b.VALUE) / (1024 * 1024), SUM(a.Bytes) / (1024 * 1024)) - (SUM(a.Bytes) / (1024 * 1024)) Shared_Pool_Avail, ((SUM(a.Bytes) / (1024 * 1024)) / (MAX(b.VALUE) / (1024 * 1024))) * 100 Avail_Pool_Pct FROM V$sgastat a, V$parameter b WHERE (a.Pool = 'shared pool' AND a.NAME NOT IN ('free memory')) AND b.NAME = 'shared_pool_size'; |