当前位置:A5D软件园网络学院数 据 库MS SQL → 网络学院内容

数据库管理员日常工作中必备的sql列表 (1)

订阅:
减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2008-5-5 16:09:51
e 121

 

SELECT r.name "ROLLBACK SEGMENT NAME ",l.sid "ORACLE PID",p.spid "SYSTEM PID ",s.username "ORACLE USERNAME"

 

FROM v$lock l, v$process p, v$rollname r, v$session s

 

WHERE l.sid = p.pid(+) AND s.sid=l.sid AND TRUNC(l.id1(+)/65536) = r.usn AND l.type(+) = 'TX' AND l.lmode(+) = 6 ORDER BY r.name;

 

--查看用户的回滚段的信息

 

select s.username, rn.name from v$session s, v$transaction t, v$rollstat r, v$rollname rn

 

where s.saddr = t.ses_addr and t.xidusn = r.usn and r.usn = rn.usn

 

--生成执行计划

 

explain plan set statement_id='a1' for &1;

 

--查看执行计划

 

select lpad(' ',2*(level-1))||operation operation,options,OBJECT_NAME,position from plan_table

 

start with id=0 and statement_id='a1' connect by prior id=parent_id and statement_id='a1'

 

--查看内存中存的使用

 

select decode(greatest(class,10),10,decode(class,1,'Data',2,'Sort',4,'Header',to_char(class)),'Rollback') "Class",

 

sum(decode(bitand(flag,1),1,0,1)) "Not Dirty",sum(decode(bitand(flag,1),1,1,0)) "Dirty",

 

sum(dirty_queue) "On Dirty",count(*) "Total"

 

from x$bh group by decode(greatest(class,10),10,decode(class,1,'Data',2,'Sort',4,'Header',to_char(class)),'Rollback');

 

--查看表空间状态

 

select tablespace_name,extent_management,segment_space_management from dba_tablespaces;

 

select table_name,freelists,freelist_groups from user_tables;

 

--查看系统请求情况

 

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;

 

--计算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;

 

--查看内存使用情况

 

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';

 

--查看用户使用内存情况

 

select username, sum(sharable_mem), sum(persistent_mem), sum(runtime_mem)

 

from sys.v_$sqlarea a, dba_users b

 

where a.parsing_user_id = b.user_id group by username;

 

--查看对象的缓存情况

 

select OWNER,NAMESPACE,TYPE,NAME,SHARABLE_MEM,LOADS,EXECUTIONS,LOCKS,PINS,KEPT

 

from v$db_object_cache where type not in ('NOT LOADED','NON-EXISTENT','VIEW','TABLE','SEQUENCE')

 

and executions>0 and loads>1 and kept='NO' order by owner,namespace,type,executions desc;

 

select type,count(*) from v$db_object_cache group by type;

 

--查看库缓存命中率

 

select namespace,gets, gethitratio*100 gethitratio,pins,pinhitratio*100 pinhitratio,RELOADS,INVALIDATIONS from v$librarycache

 

--查看某些用户的hash

 

select a.username, count(b.hash_value) total_hash,count(b.hash_value)-count(unique(b.hash_value)) same_hash,

 

(count(unique(b.hash_value))/count(b.hash_value))*100 u_hash_ratio

 

from dba_users a, v$sqlarea b where a.user_id=b.parsing_user_id group by a.username;

 

--查看字典命中率

 

select (sum(getmisses)/sum(gets)) ratio from v$rowcache;

 

--查看undo段的使用情况

 

SELECT d.segment_name,extents,optsize,shrinks,aveshrink,aveactive,d.status

 

FROM v$rollname n,v$rollstat s,dba_rollback_segs d

 

WHERE d.segment_id=n.usn(+) and d.segment_id=s.usn(+);

 

--无效的对象

 

select owner,object_type,object_name from dba_objects where status='INVALID';

 

select constraint_name,table_name from dba_constraints where status='INVALID';

 

--求出某个进程,并对它进行跟踪

 

select s.sid,s.serial# from v$session s,v$process p where s.paddr=p.addr and p.spid=&1;

 

exec dbms_system.SET_SQL_TRACE_IN_SESSION(&1,&2,true);

 

exec dbms_system.SET_SQL_TRACE_IN_SESSION(&1,&2,false);

 

--求出锁定的对象

 

select do.object_name,session_id,process,locked_mode

 

from v$locked_object lo, dba_objects do where lo.object_id=do.object_id;

 

--求当前session的跟踪文件

 

SELECT p1.value || '/' || p2.value || '_ora_' || p.spid || '.ora' filename

 

FROM v$process p, v$session s, v$parameter p1, v$parameter p2

 

WHERE p1.name = 'user_dump_dest' AND p2.name = 'instance_name'

 

AND p.addr = s.paddr AND s.audsid = USERENV('SESSIONID') AND p.background is null AND instr(p.program,'CJQ') = 0;

 

--求对象所在的文件及块号

 

select segment_name,header_file,header_block

 

from dba_segments where segment_name like '&1';

 

--求对象发生事务时回退段及块号

 

select a.segment_name,a.header_file,a.header_block

 

from dba_segments a,dba_rollback_segs b

 

where a.segment_name=b.segment_name and b.segment_id='&1'

 

--9i的在线重定义表

 

/*如果在线重定义的表没有主键需要创建主键*/

 

exec dbms_redefinition.can_redef_table('cybercafe','announcement');

 

create table anno2 as select *

上一页  [1] [2] [3] [4]  下一页

赞助商连接