当前位置:操作系统 > Unix/Linux >>

ORACLE应用经验(2)

------谁正在访问数据库?

  Select c.sid, c.serial#,c.username,a.object_id,b.object_name,

  c.program,c.status,d.name,c.osuser

  from v$Locked_object a,

  All_objects b,

  v$session c,

  audit_actions d

  where a.object_id=b.object_id

  and a.session_id =c.sid(+)

  and c.command=d.action;

  alter system kill session '&1,&2';

  Select a.sid,a.serial#,a.username,a.status,a.program,b.name,a.osuser

  from v$session a,audit_actions b

  where a.command=b.action

  And username='&1';

  ------谁被锁住?

  Select a.sid,a.serial#,a.username,A.LOCKWAIT,a.status,a.program,b.name

  from v$session a,audit_actions b

  where a.command=b.action

  AND LOCKWAIT IS NOT NULL;

  ------谁在锁表?

  Select a.sid,a.serial#,a.username,A.LOCKWAIT,a.status,a.program,b.name

  from v$session a,audit_actions b

  where a.command=b.action

  AND STATUS='ACTIVE';

  Select sid, serial#, object_name, row_wait_block#,

  row_wait_row#, row_wait_file#

  from all_objects, v$session

  where row_wait_obj#=object_id and type='USER'

  and lockwait is not null ;

  Select sl.username, sl.sid, sl.serial#

  from v_$lock l1, v$session s1

  where exists (select * from v_$lock l2, v$session s2

  where l2.sid=s2.sid and l2.id1=l1

  and s2.lockwait=l2.kaddr

  and request=0

  and l1.sid=s1.sid) ;

  select count(*) from v$session;

  select count(*) from sys.v_$process;

  select count(*) from sys.v_$transaction;

  ZYP_35.98

  ------查看哪些包要固定

  COLUMN OWNER FORMAT A10

  Select owner, name, type,

  source_size+code_size+parsed_size+error_size BYPES

  from dba_object_size

  where type='PACKAGE BODY' ORDER BY 4 DESC ;

  ------查看一个用户拥有哪些表空间的实体信息:

  Select tablespace_name, owner, segment_name,segment_type

  from dba_segments

  where owner-'SyS'

  and segment_type_-'ROLLBACK'

  order by tablespace_name, owner, segment_name ;

  break on owner on segment_name

  COLUMN segment_name FORMAT A15

  cOLUMN tablespace_name FORMAT A15

  COLUMN file_name FORMAT A20

  SELECT A.owner, a.segment_name, b.tablespace_name, b.file_name,

  sum(a.bytes) bytes

  from dba_extents a, dba_data_files b

  where a.file_id-b.file_id group by a.owner, a.segment_name,

  b.tablespace_name, b.file_name ;

  ------看内存缓冲区使用效率的指数是命中率HITS:

  Hits=Logical_reads/(logical_reads+physical_reads)

  其中:logical_reads=db_block_gets+consistent_reads

  select cur.value db, con.value con, phy.value phy,

  (cur.value+con.value)/cur.value+con.value+phy.value)*100 HITS

  from v$sysstat cur, v$sysstat con, v$sysstat phy

  where CUR.NAME='db block gets' AND

  CON.NAME='consistent gets' AND

  PHY.NAME='physical reads' ;

  ------如何检测ROLLBACK SEGMENT竞争?

  select class, count from v$waitstat

  where class in

  ('system undo header', 'system undo block',

  'undo header', 'undo block') ;

  select sum(value) from v$sysstat where name in

  ('db block gets', 'consistents gets') ;

  若count/sum(value)大于1%,则应考虑增加ROLLBACK SEGMENT

  ------查看有事务在哪几个回退段中:

  COLUMN u FORMAT A15

  COLUMN s FORMAT A15

  COLUMN s FORMAT A80

  select osuser o, username u, segment_name s, sa.sql_text

  from v$session s, v$transaction t, dba_rollback_segs r, v$sqlarea sa

  where s.taddr=t.addr and t.sidusn=r.segmant_id(+)

  and s.sql_address=sa.address(+) ;

  结束本文来自:http://doc.xiaoyaxiao.com/1726.html
发表您的高见!
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,