1. 如何远程判断Oracle数据库的安装平台  
  2.   select * from v$version;  
  3.  
  4.   查看表空间的使用情况  
  5.   select sum(bytes)/(1024*1024) as free_space,tablespace_name  
  6.   from dba_free_space  
  7.   group by tablespace_name;  
  8.  
  9.   SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,  
  10.   (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE" 
  11.   FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C  
  12.   WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;  
  13.  
  14.   1、查看表空间的名称及大小  
  15.   select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size  
  16.   from dba_tablespaces t, dba_data_files d  
  17.   where t.tablespace_name = d.tablespace_name  
  18.   group by t.tablespace_name;  
  19.  
  20.   2、查看表空间物理文件的名称及大小  
  21.   select tablespace_name, file_id, file_name,  
  22.   round(bytes/(1024*1024),0) total_space  
  23.   from dba_data_files  
  24.   order by tablespace_name;  
  25.  
  26.   3、查看回滚段名称及大小  
  27.   select segment_name, tablespace_name, r.status,  
  28.   (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,  
  29.   max_extents, v.curext CurExtent  
  30.   From dba_rollback_segs r, v$rollstat v  
  31.   Where r.segment_id = v.usn(+)  
  32.   order by segment_name ;  
  33.  
  34.   4、查看控制文件  
  35.   select name from v$controlfile;  
  36.  
  37.   5、查看日志文件  
  38.   select member from v$logfile;  
  39.  
  40.   6、查看表空间的使用情况  
  41.   select sum(bytes)/(1024*1024) as free_space,tablespace_name  
  42.   from dba_free_space  
  43.   group by tablespace_name;  
  44.  
  45.   SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,  
  46.   (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE" 
  47.   FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C  
  48.   WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;  
  49.  
  50.   7、查看数据库库对象  
  51.   select owner, object_type, status, count(*) countfrom all_objects group by owner, object_type, status;  
  52.  
  53.   8、查看数据库的版本   
  54.   Select version FROM Product_component_version  
  55.   Where SUBSTR(PRODUCT,1,6)='Oracle';  
  56.  
  57.   9、查看数据库的创建日期和归档方式  
  58.   Select Created, Log_Mode, Log_Mode From V$Database;  
  59.  
  60.   10、如何远程判断Oracle数据库的安装平台  
  61.   select * from v$version;  
  62.  
  63. 11、查看数据表的参数信息  
  64.   SELECT partition_name, high_value, high_value_length, tablespace_name,  
  65.   pct_free, pct_used, ini_trans, max_trans, initial_extent,  
  66.   next_extent, min_extent, max_extent, pct_increase, FREELISTS,  
  67.   freelist_groups, LOGGING, BUFFER_POOL, num_rows, blocks,  
  68.   empty_blocks, avg_space, chain_cnt, avg_row_len, sample_size,  
  69.   last_analyzed  
  70.   FROM dba_tab_partitions  
  71.   --WHERE table_name = :tname AND table_owner = :towner  
  72.   ORDER BY partition_position  
  73.  
  74.   12、查看还没提交的事务  
  75.   select * from v$locked_object;  
  76.   select * from v$transaction;  
  77.  
  78.   13、回滚段查看  
  79.   select rownum, sys.dba_rollback_segs.segment_name Name, v$rollstat.extents  
  80.   Extents, v$rollstat.rssize Size_in_Bytes, v$rollstat.xacts XActs,  
  81.   v$rollstat.gets Gets, v$rollstat.waits Waits, v$rollstat.writes Writes,  
  82.   sys.dba_rollback_segs.status status from v$rollstat, sys.dba_rollback_segs,  
  83.   v$rollname where v$rollname.name(+) = sys.dba_rollback_segs.segment_name and 
  84.   v$rollstat.usn (+) = v$rollname.usn order by rownum  
  85.  
  86.   14、捕捉运行很久的SQL  
  87.   column username format a12  
  88.   column opname format a16  
  89.   column progress format a8  
  90.  
  91.   select username,sid,opname,  
  92.         round(sofar*100 / totalwork,0) || '%' as progress,  
  93.         time_remaining,sql_text  
  94.   from v$session_longops , v$sql  
  95.   where time_remaining <> 0  
  96.   and sql_address = address  
  97.   and sql_hash_value = hash_value  
  98.   /  
  99.  
  100.   15、查看数据表的参数信息  
  101.   SELECT   partition_name, high_value, high_value_length, tablespace_name,  
  102.           pct_free, pct_used, ini_trans, max_trans, initial_extent,  
  103.           next_extent, min_extent, max_extent, pct_increase, FREELISTS,  
  104.           freelist_groups, LOGGING, BUFFER_POOL, num_rows, blocks,  
  105.           empty_blocks, avg_space, chain_cnt, avg_row_len, sample_size,  
  106.           last_analyzed  
  107.      FROM dba_tab_partitions  
  108.     --WHERE table_name = :tname AND table_owner = :towner  
  109.   ORDER BY partition_position  
  110.  
  111.   16、查找object为哪些进程所用  
  112.   select 
  113.   p.spid,  
  114.   s.sid,  
  115.   s.serial# serial_num,  
  116.   s.username user_name,  
  117.   a.type  object_type,  
  118.   s.osuser os_user_name,  
  119.   a.owner,  
  120.   a.object object_name,  
  121.   decode(sign(48 - command),  
  122.   1,  
  123.   to_char(command), 'Action Code #' || to_char(command) ) action,  
  124.   p.program oracle_process,  
  125.   s.terminal terminal,  
  126.   s.program program,  
  127.   s.status session_status   
  128.   from v$session s, v$access a, v$process p   
  129.   where s.paddr = p.addr and 
  130.        s.type = 'USER' and     
  131.        a.sid = s.sid   and 
  132.     a.object='SUBSCRIBER_ATTR' 
  133.   order by s.username, s.osuser  
  134.  
  135. 17、耗资源的进程(top session)  
  136.   select s.schemaname schema_name,    decode(sign(48 - command), 1,  
  137.   to_char(command), 'Action Code #' || to_char(command) ) action,    status  
  138.   session_status,   s.osuser os_user_name,   s.sid,         p.spid ,         s.serial# serial_num,   
  139.   nvl(s.username, '[Oracle process]') user_name,   s.terminal terminal,     
  140.   s.program program,   st.value criteria_value  from v$sesstat st,   v$session s  , v$process p   
  141.   where st.sid = s.sid and   st.statistic# = to_number('38'and   ('ALL' = 'ALL' 
  142.   or s.status = 'ALL'and p.addr = s.paddr order by st.value desc,  p.spid asc, s.username asc, s.osuser asc 
  143.  
  144.   18、查看锁(lock)情况  
  145.   select /*+ RULE */ ls.osuser os_user_name,   ls.username user_name,   
  146.   decode(ls.type, 'RW''Row wait enqueue lock''TM''DML enqueue lock''TX',  
  147.   'Transaction enqueue lock''UL''User supplied lock') lock_type,   
  148.   o.object_name object,   decode(ls.lmode, 1, null, 2, 'Row Share', 3,  
  149.   'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive'null)  
  150.   lock_mode,    o.owner,   ls.sid,   ls.serial# serial_num,   ls.id1,   ls.id2     
  151.   from sys.dba_objects o, (   select s.osuser,    s.username,    l.type,     
  152.   l.lmode,    s.sid,    s.serial#,    l.id1,    l.id2   from v$session s,     
  153.   v$lock l   where s.sid = l.sid ) ls  where o.object_id = ls.id1 and    o.owner  
  154.   <> 'SYS'   order by o.owner, o.object_name  
  155.  
  156.   根据sid查是哪台电脑的链接  
  157.   column osuser format a15  
  158.   column username format a10  
  159.   column machine format a30  
  160.   select osuser,machine,username,sid,serial# from v$session where sid='128';  
  161.  
  162.   根据sid查对应的sql  
  163.   select SID,SQL_TEXT from v$open_cursor where SID='128';  
  164.  
  165.   19、查看等待(wait)情况  
  166.   SELECT v$waitstat.class, v$waitstat.count countSUM(v$sysstat.value) sum_value  
  167.   FROM v$waitstat, v$sysstat WHERE v$sysstat.name IN ('db block gets',  
  168.   'consistent gets'group by v$waitstat.class, v$waitstat.count 
  169.  
  170.   20、查看sga情况  
  171.   SELECT NAME, BYTES FROM SYS.V_$SGASTAT ORDER BY NAME ASC 
  172.  
  173.   21、查看catched object  
  174.   SELECT owner,              name,              db_link,              namespace,   
  175.              type,              sharable_mem,              loads,              executions,   
  176.             locks,              pins,              kept        FROM v$db_object_cache  
  177.             
  178.   22、查看V$SQLAREA  
  179.   SELECT SQL_TEXT, SHARABLE_MEM, PERSISTENT_MEM, RUNTIME_MEM, SORTS,  
  180.   VERSION_COUNT, LOADED_VERSIONS, OPEN_VERSIONS, USERS_OPENING, EXECUTIONS,  
  181.   USERS_EXECUTING, LOADS, FIRST_LOAD_TIME, INVALIDATIONS, PARSE_CALLS, DISK_READS,  
  182.   BUFFER_GETS, ROWS_PROCESSED FROM V$SQLAREA  
  183.  
  184.   23、查看object分类数量  
  185.   select decode (o.type#,1,'INDEX' , 2,'TABLE' , 3 , 'CLUSTER' , 4, 'VIEW' , 5 ,  
  186.   'SYNONYM' , 6 , 'SEQUENCE' , 'OTHER' ) object_type , count(*) quantity from 
  187.   sys.obj$ o where o.type# > 1 group by decode (o.type#,1,'INDEX' , 2,'TABLE' , 3  
  188.   , 'CLUSTER' , 4, 'VIEW' , 5 , 'SYNONYM' , 6 , 'SEQUENCE' , 'OTHER' ) union select 
  189.   'COLUMN' , count(*) from sys.col$ union select 'DB LINK' , count(*) from 
  190.  
  191.   24、按用户查看object种类  
  192.   select u.name schema,   sum(decode(o.type#, 1, 1, NULL)) indexes,   
  193.   sum(decode(o.type#, 2, 1, NULL)) tables,   sum(decode(o.type#, 3, 1, NULL))  
  194.   clusters,   sum(decode(o.type#, 4, 1, NULL)) views,   sum(decode(o.type#, 5, 1,  
  195.   NULL)) synonyms,   sum(decode(o.type#, 6, 1, NULL)) sequences,   
  196.   sum(decode(o.type#, 1, NULL, 2, NULL, 3, NULL, 4, NULL, 5, NULL, 6, NULL, 1))  
  197.   others   from sys.obj$ o, sys.user$ u   where o.type# >= 1 and    u.user# =  
  198.   o.owner# and   u.name <> 'PUBLIC'   group by u.name    order by 
  199.   sys.link$ union select 'CONSTRAINT' , count(*) from sys.con$  
  200.  
  201. 25、有关connection的相关信息  
  202.   1)查看有哪些用户连接  
  203.   select s.osuser os_user_name,    decode(sign(48 - command), 1, to_char(command),  
  204.   'Action Code #' || to_char(command) ) action,     p.program oracle_process,     
  205.   status session_status,    s.terminal terminal,    s.program program,     
  206.   s.username user_name,    s.fixed_table_sequence activity_meter,    '' query,     
  207.   0 memory,    0 max_memory,     0 cpu_usage,    s.sid,   s.serial# serial_num     
  208.   from v$session s,    v$process p   where s.paddr=p.addr and    s.type = 'USER'   
  209.   order by s.username, s.osuser  
  210.  
  211.   2)根据v.sid查看对应连接的资源占用等情况  
  212.   select n.name,  
  213.    v.value,  
  214.    n.class,  
  215.    n.statistic#   
  216.   from  v$statname n,  
  217.    v$sesstat v  
  218.   where v.sid = 71 and 
  219.    v.statistic# = n.statistic#  
  220.   order by n.class, n.statistic#  
  221.  
  222.   3)根据sid查看对应连接正在运行的sql  
  223.   select /*+ PUSH_SUBQ */  
  224.    command_type,  
  225.    sql_text,  
  226.    sharable_mem,  
  227.    persistent_mem,  
  228.    runtime_mem,  
  229.    sorts,  
  230.    version_count,  
  231.    loaded_versions,  
  232.    open_versions,  
  233.    users_opening,  
  234.    executions,  
  235.    users_executing,  
  236.    loads,  
  237.    first_load_time,  
  238.    invalidations,  
  239.    parse_calls,  
  240.    disk_reads,  
  241.    buffer_gets,  
  242.    rows_processed,  
  243.    sysdate start_time,  
  244.    sysdate finish_time,  
  245.    '>' || address sql_address,  
  246.    'N' status  
  247.   from v$sqlarea  
  248.   where address = (select sql_address from v$session where sid = 71)  
  249.  
  250.   26、查询表空间使用情况  
  251.   select a.tablespace_name "表空间名称",  
  252.   100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "占用率(%)",  
  253.   round(a.bytes_alloc/1024/1024,2) "容量(M)",  
  254.   round(nvl(b.bytes_free,0)/1024/1024,2) "空闲(M)",  
  255.   round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2) "使用(M)",  
  256.   Largest "最大扩展段(M)",  
  257.   to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'"采样时间" 
  258.   from  (select f.tablespace_name,  
  259.      sum(f.bytes) bytes_alloc,  
  260.      sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes  
  261.   from dba_data_files f  
  262.   group by tablespace_name) a,  
  263.   (select  f.tablespace_name,  
  264.       sum(f.bytes) bytes_free  
  265.   from dba_free_space f  
  266.   group by tablespace_name) b,  
  267.   (select round(max(ff.length)*16/1024,2) Largest,  
  268.      ts.name tablespace_name  
  269.   from sys.fet$ ff, sys.file$ tf,sys.ts$ ts  
  270.   where ts.ts#=ff.ts# and ff.file#=tf.relfile# and ts.ts#=tf.ts#  
  271.   group by ts.name, tf.blocks) c  
  272.   where a.tablespace_name = b.tablespace_name and a.tablespace_name = c.tablespace_name  
  273.  
  274. 27、查询表空间的碎片程度  
  275.   select tablespace_name,count(tablespace_name) from dba_free_space group by tablespace_name  
  276.   having count(tablespace_name)>10;  
  277.  
  278.   alter tablespace name coalesce;  
  279.   alter table name deallocate unused;  
  280.  
  281.   create or replace view ts_blocks_v as 
  282.   select tablespace_name,block_id,bytes,blocks,'free space' segment_name from dba_free_space  
  283.   union all 
  284.   select tablespace_name,block_id,bytes,blocks,segment_name from dba_extents;  
  285.  
  286.   select * from ts_blocks_v;  
  287.  
  288.   select tablespace_name,sum(bytes),max(bytes),count(block_id) from dba_free_space  
  289.   group by tablespace_name;  
  290.  
  291.   28、查询有哪些数据库实例在运行  
  292.   select inst_name from v$active_instances;  
  293.  
  294.   29、查找oracle性能瓶颈sql  
  295.   select sql_text,spid,v$session.program,process from 
  296.   v$sqlarea,v$session,v$process  
  297.   where v$sqlarea.address=v$session.sql_address  
  298.   and v$sqlarea.hash_value=v$session.sql_hash_value  
  299.   and v$session.paddr=v$process.addr  
  300.   and v$process.spid in (操作系统PID);  
  301.  
  302.   select sid,event,p1,p1text from v$session_wait;  
  303.  
  304.   30、 找出最耗资源的sql  
  305.   select * from v$process where spid='2796';  
  306.   select sql_hash_value,machine,username,program from v$session where PAddr='63B7A584';  
  307.   select * from v$sqltext where hash_value='833203018';  
  308.   select * from v$sql where hash_value='833203018';  
  309.   select * from v$sqlarea where hash_value='833203018';  
  310.  
  311.   SELECT a.username,a.machine,a.program,a.sid,a.serial#,a.status,c.piece,c.sql_text FROM v$session a,v$process b,v$sqltext c WHERE b.spid='2796' AND b.addr=a.paddr AND a.sql_address=c.address(+) ORDER BY c.piece要找出最耗资源的sql,我们可以首先使用top等工具,找到最好资源的进程(记住进程号),例如,操作系统进程号为2796,然后根据这个进程号(v$process.spid)在v$process中找到进程地址(v$process.addr),然后根据这个地址在 v$session中找到相应的sid(v$session.sid),然后根据这个sid找到相应的hash alue(v$session. sql_hash_value),然后根据这个hash alue在v$sqltext,$sql,v$sqlarea等视图中找到对应的sql语句(sql_text)。  
  312.  
  313.   select * from v$process where spid='2796';  
  314.   select sql_hash_value,machine,username,program from v$session where PAddr='63B7A584';  
  315.   select * from v$sqltext where hash_value='833203018';  
  316.   select * from v$sql where hash_value='833203018';  
  317.   select * from v$sqlarea where hash_value='833203018';  
  318.  
  319.   SELECT a.username,a.machine,a.program,a.sid,a.serial#,a.status,c.piece,c.sql_text FROM v$session a,v$process b,v$sqltext c WHERE b.spid='2796' AND b.addr=a.paddr AND a.sql_address=c.address(+) ORDER BY c.piece  
  320.