重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6798|回复: 3
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-18 11:51:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

目 录

 

1.捕捉运行很久的SQL

2.求DISK READ较多的SQL

3.求DISK SORT严重的SQL

4.计算data buffer 命中率

5.监控索引是否使用

6.求数据文件的I/O分布

7求某个隐藏参数的值

8求系统中较大的latch

9求归档日志的切换频率(生产系统可能时间会很长)

10.求回滚段正在处理的事务

11.求出无效的对象

12.求process/session的状态

13.求当前session的状态

14.求表的索引信息

15.显示表的外键信息

16.显示表的分区及子分区(user_tab_subpartitions)

17.使用dbms_xplan生成一个执行计划

18.求某个事务的重做信息(bytes)

19.求cache中缓存超过其5%的对象

20.求谁阻塞了某个session(10g)

21.求session的OS进程ID

22.查会话的阻塞

23.求等待的事件及会话信息/求会话的等待及会话信息

24.求会话等待的file_id/block_id

25求会话等待的对象

26求buffer cache中的块信息

27求日志文件的空间使用

28求等待中的对象

29求当前事务的重做尺寸

30唤醒smon去清除临时段

31求回退率  

32求DISK READ较多的SQL

33求DISK SORT严重的SQL

34求对象的创建代码

35求表的索引

36求索引中行数较多的

37求当前会话的SID,SERIAL#

38求表空间的未用空间

39求表中定义的触发器

40求未定义索引的表

41执行常用的过程

42求free memory

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

44生成执行计划

45查看执行计划

46查看内存中存的使用

47查看表空间状态

48查看系统请求情况

49计算data buffer命中率

50查看内存使用情况

51查看用户使用内存情况

52查看对象的缓存情况

53查看库缓存命中率

54查看某些用户的hash

55查看字典命中率

56查看undo段的使用情况

57无效的对象

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

59求出锁定的对象

60求当前session的跟踪文件

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

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

63.9i的在线重定义表

64常用的logmnr脚本(cybercafe)

65与权限相关的字典

66如何用dbms_stats分析表及模式?

67查看数据库的名字和归档状态

68查看数据库的instance名字和状态

69查看表空间名称、状态和管理方式

70查看控制文件的位置和名字

71 查看日志文件的组名、成员数量、状态和大小

72查看日志文件的位置

73查看数据文件的位置和大小

74查看用户拥有的对象和类型

75查看临时文件的信息

76查看归档日志信息

 

 

捕捉运行很久的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;


 

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

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



 

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



 

  --监控索引是否使用

  alter index &index_name monitoring usage;
  alter index &index_name nomonitoring usage;
  select * from v$object_usage where index_name = &index_name;

  --求数据文件的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;

  --求某个隐藏参数的值

  col ksppinm format a54
  col ksppstvl format a54
  select ksppinm, ksppstvl
  from x$ksppi pi, x$ksppcv cv
  where cv.indx=pi.indx and pi.ksppinm like '\_%' escape '\' and      pi.ksppinm like '%meer%';

  --求系统中较大的latch

  select name,sum(gets),sum(misses),sum(sleeps),sum(wait_time)
  from v$latch_children
  group by name having sum(gets) > 50 order by 2;

  --求归档日志的切换频率(生产系统可能时间会很长)

  select start_recid,start_time,end_recid,end_time,minutes from (select test.*, rownum as rn
  from (select b.recid start_recid,to_char(b.first_time,'yyyy-mm-dd hh24:mi:ss') start_time,
  a.recid end_recid,to_char(a.first_time,'yyyy-mm-dd hh24:mi:ss') end_time,round(((a.first_time-b.first_time)*24)*60,2) minutes
  from v$log_history a,v$log_history b where a.recid=b.recid+1 and b.first_time > sysdate - 1
  order by a.first_time desc) test) y where y.rn < 30

  --求回滚段正在处理的事务

  select a.name,b.xacts,c.sid,c.serial#,d.sql_text
  from v$rollname a,v$rollstat b,v$session c,v$sqltext d,v$transaction e
  where a.usn=b.usn and b.usn=e.xidusn and c.taddr=e.addr
  and c.sql_address=d.address and c.sql_hash_value=d.hash_value order by a.name,c.sid,d.piece;

  --求出无效的对象

  select 'alter procedure '||object_name||' compile;'
  from dba_objects
  where status='INVALID' and wner='&' and object_type in ('PACKAGE','PACKAGE BODY');
  /
  select owner,object_name,object_type,status from dba_objects where status='INVALID';

  --求process/session的状态

  select p.pid,p.spid,s.program,s.sid,s.serial#
  from v$process p,v$session s where s.paddr=p.addr;

  --求当前session的状态

  select sn.name,ms.value
  from v$mystat ms,v$statname sn
  where ms.statistic#=sn.statistic# and ms.value > 0;

  --求表的索引信息

  select ui.table_name,ui.index_name
  from user_indexes ui,user_ind_columns uic
  where ui.table_name=uic.table_name and ui.index_name=uic.index_name
  and ui.table_name like '&table_name%' and uic.column_name='&column_name';

  --显示表的外键信息

  col search_condition format a54
  select table_name,constraint_name
  from user_constraints
  where c and constraint_name in (select constraint_name from user_cons_columns where column_name='&1');
  select rpad(child.table_name,25,' ') child_tablename,
  rpad(cp.column_name,17,' ') referring_column,rpad(parent.table_name,25,' ') parent_tablename,
  rpad(pc.column_name,15,' ') referred_column,rpad(child.constraint_name,25,' ') constraint_name
  from user_constraints child,user_constraints parent,
  user_cons_columns cp,user_cons_columns pc
  where child.c and child.r_constraint_name = parent.constraint_name and
  child.constraint_name = cp.constraint_name and parent.constraint_name = pc.constraint_name and
  cp.position = pc.position and child.table_name ='&table_name'
  order by child.owner,child.table_name,child.constraint_name,cp.position;

  --显示表的分区及子分区(user_tab_subpartitions)

  col table_name format a16
  col partition_name format a16
  col high_value format a81
  select table_name,partition_name,HIGH_VALUE from user_tab_partitions where table_name='&table_name'

  --使用dbms_xplan生成一个执行计划

  explain plan set statement_id = '&sql_id' for &sql;
  select * from table(dbms_xplan.display);

  --求某个事务的重做信息(bytes)

  select s.name,m.value
  from v$mystat m,v$statname s
  where m.statistic#=s.statistic# and s.name like '%redo size%';

  --求cache中缓存超过其5%的对象

  select o.owner,o.object_type,o.object_name,count(b.objd)
  from v$bh b,dba_objects o
  where b.objd = o.object_id
  group by o.owner,o.object_type,o.object_name
  having count(b.objd) > (select to_number(value)*0.05 from v$parameter where name = 'db_block_buffers');

  --求谁阻塞了某个session(10g)

  select sid, username, event, blocking_session,
  seconds_in_wait, wait_time
  from v$session where state in ('WAITING') and wait_class != 'Idle';

  --求session的OS进程ID

  col program format a54
  select p.spid "OS Thread", b.name "Name-User", s.program
  from v$process p, v$session s, v$bgprocess b
  where p.addr = s.paddr and p.addr = b.paddr
  UNION ALL
  select p.spid "OS Thread", s.username "Name-User", s.program
  from v$process p, v$session s where p.addr = s.paddr and s.username is not null;

  --查会话的阻塞

  col user_name format a32
  select /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username user_name, o.owner,o.object_name,s.sid,s.serial#
  from v$locked_object l,dba_objects o,v$session s
  where l.object_id=o.object_id and l.session_id=s.sid order by o.object_id,xidusn desc ;
  col username format a15
  col lock_level format a8
  col owner format a18
  col object_name format a32
  select /*+ rule */ s.username, decode(l.type,'tm','table lock', 'tx','row lock', null) lock_level, o.owner,o.object_name,s.sid,s.serial#
  from v$session s,v$lock l,dba_objects o
  where l.sid = s.sid and l.id1 = o.object_id(+) and s.username is not null ;

  --求等待的事件及会话信息/求会话的等待及会话信息

  select se.sid,s.username,se.event,se.total_waits,se.time_waited,se.average_wait
  from v$session s,v$session_event se
  where s.username is not null and se.sid=s.sid and s.status='ACTIVE' and se.event not like '%SQL*Net%' order by s.username;
  select s.sid,s.username,sw.event,sw.wait_time,sw.state,sw.seconds_in_wait
  from v$session s,v$session_wait sw
  where s.username is not null and sw.sid=s.sid and sw.event not like '%SQL*Net%' order by s.username;

  --求会话等待的file_id/block_id

  col event format a24
  col p1text format a12
  col p2text format a12
  col p3text format a12
  select sid,event,p1text, p1, p2text, p2, p3text, p3
  from v$session_wait
  where event not like '%SQL%' and event not like '%rdbms%' and event not like '%mon%' order by event;
  select name,wait_time from v$latch l where exists (select 1 from (select sid,event,p1text, p1, p2text, p2, p3text, p3
  from v$session_wait
  where event not like '%SQL%' and event not like '%rdbms%' and event not like '%mon%'
  ) x where x.p1= l.latch#);

  --求会话等待的对象

  col owner format a18
  col segment_name format a32
  col segment_type format a32
  select owner,segment_name,segment_type
  from dba_extents
  where file_id = &file_id and &block_id between block_id and block_id + blocks - 1;

  --求buffer cache中的块信息

  select o.OBJECT_TYPE, substr(o.OBJECT_NAME,1,10) objname , b.objd , b.status, count(b.objd)
  from v$bh b, dba_objects o
  where b.objd = o.data_object_id and o.owner = '&1' group by o.object_type, o.object_name,b.objd, b.status ;

  --求日志文件的空间使用

  select le.leseq current_log_sequence#, 100*cp.cpodr_bno/le.lesiz percentage_full
  from x$kcccp cp,x$kccle le
  where le.leseq =cp.cpodr_seq;

  --求等待中的对象

  select /*+rule */ s.sid, s.username, w.event, o.owner, o.segment_name, o.segment_type,
  o.partition_name, w.seconds_in_wait seconds, w.state
  from v$session_wait w, v$session s, dba_extents o
  where w.event in (select name from v$event_name where parameter1 = 'file#'
  and parameter2 = 'block#' and name not like 'control%')
  and o.owner <> 'sys' and w.sid = s.sid and w.p1 = o.file_id and w.p2 >= o.block_id and w.p2 < o.block_id + o.blocks

  --求当前事务的重做尺寸

  select value
  from v$mystat, v$statname
  where v$mystat.statistic# = v$statname.statistic# and v$statname.name = 'redo size';

  --唤醒smon去清除临时段

  column pid new_value Smon
  set termout off
  select p.pid from sys.v_$bgprocess b,sys.v_$process p where b.name = 'SMON' and p.addr = b.paddr
  /
  set termout on
  oradebug wakeup &Smon
  undefine Smon

  --求回退率

  select b.value/(a.value + b.value),a.value,b.value from v$sysstat a,v$sysstat b
  where a.statistic#=4 and b.statistic#=5;

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

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

  --求对象的创建代码

  column column_name format a36
  column sql_text format a99
  select dbms_metadata.get_ddl('TABLE','&1') from dual;
  select dbms_metadata.get_ddl('INDEX','&1') from dual;

  --求表的索引

  set linesize 131
  select a.index_name,a.column_name,b.status, b.index_type
  from user_ind_columns a,user_indexes b
  where a.index_name=b.index_name and a.table_name='&1';

  求索引中行数较多的

  select index_name,blevel,num_rows,CLUSTERING_FACTOR,status from user_indexes where num_rows > 10000 and blevel > 0
  select table_name,index_name,blevel,num_rows,CLUSTERING_FACTOR,status from user_indexes where status <> 'VALID'



 

     --求当前会话的SID,SERIAL#

  select sid, serial# from v$session where audsid = SYS_CONTEXT('USERENV','SESSIONID');

  --求表空间的未用空间

  col mbytes format 9999.9999
  select tablespace_name,sum(bytes)/1024/1024 mbytes from dba_free_space group by tablespace_name;

  --求表中定义的触发器

  select table_name,index_type,index_name,uniqueness from user_indexes where table_name='&1';
  select trigger_name from user_triggers where table_name='&1';

  --求未定义索引的表

  select table_name from user_tables where table_name not in (select table_name from user_ind_columns);

  --执行常用的过程

  exec print_sql('select count(*) from tab');
  exec show_space2('table_name');

  --求free memory

  select * from v$sgastat where name='free memory';
  select a.name,sum(b.value) from v$statname a,v$sesstat b where a.statistic# = b.statistic# group by a.name;

  查看一下谁在使用那个可以得回滚段,或者查看一下某个可以得用户在使用回滚段,找出领回滚段不断增长的事务,再看看如何处理它,是否可以将它commit,再不行就看能否kill它,查看当前正在使用的回滚段的用户信息和回滚段信息:

  set linesize 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 * from announcement
  exec dbms_redefinition.start_redef_table('cybercafe','announcement','anno2');
  exec dbms_redefinition.sync_interim_table('cybercafe','announcement','anno2');
  exec dbms_redefinition.finish_redef_table('cybercafe','announcement','anno2');
  drop table anno2
  exec dbms_redefinition.abort_redef_table('cybercafe','announcement','anno2');

  --常用的logmnr脚本(cybercafe)

  exec sys.dbms_logmnr_d.build(dictionary_filename =>'esal',dictionary_location =>'/home/oracle/logmnr');
  exec sys.dbms_logmnr.add_logfile(logfilename=>'/home/oracle/oradata/esal/archive/1_24050.dbf', ptions=>sys.dbms_logmnr.new);
  exec sys.dbms_logmnr.add_logfile(logfilename=>'/home/oracle/oradata/esal/archive/1_22912.dbf', ptions=>sys.dbms_logmnr.addfile);
  exec sys.dbms_logmnr.add_logfile(logfilename=>'/home/oracle/oradata/esal/archive/1_22913.dbf', ptions=>sys.dbms_logmnr.addfile);
  exec sys.dbms_logmnr.add_logfile(logfilename=>'/home/oracle/oradata/esal/archive/1_22914.dbf', ptions=>sys.dbms_logmnr.addfile);
  exec sys.dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/logmnr/esal.ora');
  create table logmnr2 as select * from v$logmnr_contents;

  --与权限相关的字典

  ALL_COL_PRIVS表示列上的授权,用户和PUBLIC是被授予者
  ALL_COL_PRIVS_MADE表示列上的授权,用户是属主和被授予者
  ALL_COL_RECD表示列上的授权,用户和PUBLIC是被授予者
  ALL_TAB_PRIVS表示对象上的授权,用户是PUBLIC或被授予者或用户是属主
  ALL_TAB_PRIVS_MADE表示对象上的权限,用户是属主或授予者
  ALL_TAB_PRIVS_RECD表示对象上的权限,用户是PUBLIC或被授予者
  DBA_COL_PRIVS数据库列上的所有授权
  DBA_ROLE_PRIVS显示已授予用户或其他角色的角色
  DBA_SYS_PRIVS已授予用户或角色的系统权限
  DBA_TAB_PRIVS数据库对象上的所有权限
  ROLE_ROLE_PRIVS显示已授予用户的角色
  ROLE_SYS_PRIVS显示通过角色授予用户的系统权限
  ROLE_TAB_PRIVS显示通过角色授予用户的对象权限
  SESSION_PRIVS显示用户现在可利用的所有系统权限
  USER_COL_PRIVS显示列上的权限,用户是属主、授予者或被授予者
  USER_COL_PRIVS_MADE显示列上已授予的权限,用户是属主或授予者
  USER_COL_PRIVS_RECD显示列上已授予的权限,用户是属主或被授予者
  USER_ROLE_PRIVS显示已授予给用户的所有角色
  USER_SYS_PRIVS显示已授予给用户的所有系统权限
  USER_TAB_PRIVS显示已授予给用户的所有对象权限
  USER_TAB_PRIVS_MADE显示已授予给其他用户的对象权限,用户是属主
  USER_TAB_PRIVS_RECD显示已授予给其他用户的对象权限,用户是被授予者

  --如何用dbms_stats分析表及模式?

  exec dbms_stats.gather_schema_stats(ownname=>'&USER_NAME',estimate_percent=>dbms_stats.auto_sample_size,
  method_opt => 'for all columns size auto',degree=> DBMS_STATS.DEFAULT_DEGREE);
  exec dbms_stats.gather_schema_stats(ownname=>'&USER_NAME',estimate_percent=>dbms_stats.auto_sample_size,cascade=>true);
  /*
  FOR ALL [INDEXED | HIDDEN] COLUMNS [size_clause]
  FOR COLUMNS [size clause] column|attribute [size_clause] [,column|attribute [size_clause]...],
  where size_clause is defined as size_clause := SIZE {integer | REPEAT | AUTO | SKEWONLY}
  integer--Number of histogram buckets. Must be in the range [1,254].
  REPEAT--Collects histograms only on the columns that already have histograms.
  AUTO--Oracle determines the columns to collect histograms based on data distribution and the workload of the columns.
  SKEWONLY--Oracle determines the columns to collect histograms based on the data distribution of the columns
  */

   查看oracle 10g 视图

2008-09-28 10:46

   查看数据库的名字和归档状态

  SQL> select name,log_mode from v$database;

  NAME      LOG_MODE

  --------- ------------

  HB130000 ARCHIVELOG

  查看数据库的instance名字和状态

  SQL> select instance_name,status from v$instance;

  INSTANCE_NAME    STATUS

  hb130000         OPEN

  查看表空间名称、状态和管理方式

  SQL> select tablespace_name,status,extent_management from dba_tablespaces;

  TABLESPACE_NAME                STATUS    EXTENT_MAN

  SYSTEM                         ONLINE    LOCAL

  UNDOTBS1                       ONLINE    LOCAL

  SYSAUX                         ONLINE    LOCAL

  TEMP                           ONLINE    LOCAL

  USERS                          ONLINE    LOCAL

  GFB                            ONLINE    LOCAL

  YSZX130000002004               ONLINE    LOCAL

  RMAN                           ONLINE    LOCAL

  8 rows selected.

  查看控制文件的位置和名字

  SQL> select name from v$controlfile;

  NAME

  /oracle/app/oracle/OraHome/dbs/hb130000/control01.ctl

  /oradata/hb130000/control02.ctl

  /oradata/hb130000/control03.ctl

  查看日志文件的组名、成员数量、状态和大小

  SQL> select group#,members,bytes,status from v$log;

      GROUP#    MEMBERS      BYTES STATUS

           1          2   52428800 INACTIVE

           2          2   52428800 INACTIVE

           3          2   52428800 CURRENT

  查看日志文件的位置

  SQL> select group#,member from v$logfile;

      GROUP# MEMBER

           3/oradata/hb130000/redo03.log

           3/oracle/app/oracle/OraHome/dbs/hb130000/redo03.rdo

           2/oradata/hb130000/redo02.log

      GROUP# MEMBER

           2

   /oracle/app/oracle/OraHome/dbs/hb130000/redo02.rdo

           1

  /oradata/hb130000/redo01.log

           1

  /oracle/app/oracle/OraHome/dbs/hb130000/redo01.rdo

  6 rows selected.

  查看数据文件的位置和大小

  SQL> select name,bytes from v$datafile;

  NAME

       BYTES

  /oradata/hb130000/system01.dbf

   492830720

  /oradata/hb130000/undotbs01.dbf

   41943040

  /oradata/hb130000/sysaux01.dbf

   346030080

  NAME

       BYTES

  /oradata/hb130000/users01.dbf

     5242880

  /oradata/hb130000/GFB.DBF

   20971520

  /oradata/hb130000/YSZX130000002004.DBF

   176160768

  NAME

       BYTES

  /oradata/hb130000/rman.dbf

   104857600

  7 rows selected.

  查看用户拥有的对象和类型

  SQL> select object_name,object_type from dba_objects where owner='SCOTT';

  OBJECT_NAME

                                                   OBJECT_TYPE

  DEPT

                                                   TABLE

  PK_DEPT

                                                   INDEX

  EMP

                                                   TABLE

  PK_EMP

                                                   INDEX

  BONUS

                                                   TABLE

  SALGRADE

                                                   TABLE

  6 rows selected.

  查看临时文件的信息

  SQL> select name,bytes from v$tempfile;

  NAME

       BYTES

  /oradata/hb130000/temp01.dbf

   20971520

  查看归档日志信息

  SQL> select name, FIRST_CHANGE#,next_change# from v$archived_log;

  NAME

  FIRST_CHANGE# NEXT_CHANGE#

  /oracle/app/oracle/OraHome/dbs/archive/hb130000_1_53_532853380.dbf

        1669178      1707392

  /oracle/app/oracle/OraHome/dbs/archive/hb130000_1_54_532853380.dbf

        1707392      1734524

  /oracle/app/oracle/OraHome/dbs/archive/hb130000_1_55_532853380.dbf

        1734524      1772848

  NAME

  FIRST_CHANGE# NEXT_CHANGE#

  /oracle/app/oracle/OraHome/dbs/archive/hb130000_1_56_532853380.dbf

        1772848      1798092

  /oracle/app/oracle/OraHome/dbs/archive/hb130000_1_57_532853380.dbf

        1798092      1831478

  /oracle/app/oracle/OraHome/dbs/archive/hb130000_1_58_532853380.dbf

        1831478      1865033

 

转自:IXPUB论坛

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
发表于 2012-9-18 18:58:20 | 只看该作者

不错,好文章

回复 支持 反对

使用道具 举报

板凳
发表于 2012-9-20 23:37:21 | 只看该作者
这个帖子我认为应该加精呢。因为这些基本SQL的用处在日常的工作中大有用处的哦。
回复 支持 反对

使用道具 举报

地板
发表于 2012-10-14 19:56:19 | 只看该作者

好东西,值得收藏~~

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-5-5 10:14 , Processed in 0.097919 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表