您的位置:首页 > 数据库 > Oracle

ORACLE应用经验(2)[转载]

2006-06-27 13:46 423 查看
ORACLE应用经验(2)

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

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

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

fromv$Locked_objecta,

All_objectsb,

v$sessionc,

audit_actionsd

wherea.object_id=b.object_id

anda.session_id=c.sid(+)

andc.command=d.action;


altersystemkillsession'&1,&2';


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

fromv$sessiona,audit_actionsb

wherea.command=b.action

Andusername='&1';

------谁被锁住?

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

fromv$sessiona,audit_actionsb

wherea.command=b.action

ANDLOCKWAITISNOTNULL;

------谁在锁表?

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

fromv$sessiona,audit_actionsb

wherea.command=b.action

ANDSTATUS='ACTIVE';


Selectsid,serial#,object_name,row_wait_block#,

row_wait_row#,row_wait_file#

fromall_objects,v$session

whererow_wait_obj#=object_idandtype='USER'

andlockwaitisnotnull;


Selectsl.username,sl.sid,sl.serial#

fromv_$lockl1,v$sessions1

whereexists(select*fromv_$lockl2,v$sessions2

wherel2.sid=s2.sidandl2.id1=l1

ands2.lockwait=l2.kaddr

andrequest=0

andl1.sid=s1.sid);


selectcount(*)fromv$session;

selectcount(*)fromsys.v_$process;

selectcount(*)fromsys.v_$transaction;


ZYP_35.98


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

COLUMNOWNERFORMATA10

Selectowner,name,type,

source_size+code_size+parsed_size+error_sizeBYPES

fromdba_object_size

wheretype='PACKAGEBODY'ORDERBY4DESC;


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

Selecttablespace_name,owner,segment_name,segment_type

fromdba_segments

whereowner-'SyS'

andsegment_type_-'ROLLBACK'

orderbytablespace_name,owner,segment_name;


breakonowneronsegment_name

COLUMNsegment_nameFORMATA15

cOLUMNtablespace_nameFORMATA15

COLUMNfile_nameFORMATA20

SELECTA.owner,a.segment_name,b.tablespace_name,b.file_name,

sum(a.bytes)bytes

fromdba_extentsa,dba_data_filesb

wherea.file_id-b.file_idgroupbya.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


selectcur.valuedb,con.valuecon,phy.valuephy,

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

fromv$sysstatcur,v$sysstatcon,v$sysstatphy

whereCUR.NAME='dbblockgets'AND

CON.NAME='consistentgets'AND

PHY.NAME='physicalreads';


------如何检测ROLLBACKSEGMENT竞争?

selectclass,countfromv$waitstat

whereclassin

('systemundoheader','systemundoblock',

'undoheader','undoblock');


selectsum(value)fromv$sysstatwherenamein

('dbblockgets','consistentsgets');


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


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

COLUMNuFORMATA15

COLUMNsFORMATA15

COLUMNsFORMATA80

selectosusero,usernameu,segment_names,sa.sql_text

fromv$sessions,v$transactiont,dba_rollback_segsr,v$sqlareasa

wheres.taddr=t.addrandt.sidusn=r.segmant_id(+)

ands.sql_address=sa.address(+);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: