`
fz8224
  • 浏览: 22985 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Oracle常用SQL(一)

阅读更多
1、查看表空间的名称及大小   
  select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size   
  from dba_tablespaces t, dba_data_files d   
  where t.tablespace_name = d.tablespace_name   
  group by t.tablespace_name;   
    
  2、查看表空间物理文件的名称及大小   
  select tablespace_name, file_id, file_name,   
  round(bytes/(1024*1024),0) total_space   
  from dba_data_files   
  order by tablespace_name;   
    
  3、查看回滚段名称及大小   
  select segment_name, tablespace_name, r.status,   
  (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,   
  max_extents, v.curext CurExtent   
  From dba_rollback_segs r, v$rollstat v   
  Where r.segment_id = v.usn(+)   
  order by segment_name ;   
    
  4、查看控制文件   
  select name from v$controlfile;   
    
  5、查看日志文件   
  select member from v$logfile;   
    
  6、查看表空间的使用情况   
  select sum(bytes)/(1024*1024) as free_space,tablespace_name   
  from dba_free_space   
  group by tablespace_name;   
  SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,   
  (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"   
  FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C   
  WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;   
    
  7、查看数据库库对象   
  select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;   
    
  8、查看数据库的版本    
  Select version FROM Product_component_version   
  Where SUBSTR(PRODUCT,1,6)='Oracle';   
    
  9、查看数据库的创建日期和归档方式   
  Select Created, Log_Mode, Log_Mode From V$Database;   
    
  10、捕捉运行很久的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   
  /   
    
  11。查看数据表的参数信息   
  SELECT  partition_name, high_value, high_value_length, tablespace_name,   
       pct_free, pct_used, ini_trans, max_trans, initial_extent,   
       next_extent, min_extent, max_extent, pct_increase, FREELISTS,   
       freelist_groups, LOGGING, BUFFER_POOL, num_rows, blocks,   
       empty_blocks, avg_space, chain_cnt, avg_row_len, sample_size,   
       last_analyzed   
    FROM dba_tab_partitions   
    --WHERE table_name = :tname AND table_owner = :towner   
  ORDER BY partition_position   
    
  12.查看还没提交的事务   
  select * from v$locked_object;   
  select * from v$transaction;   
    
  13。查找object为哪些进程所用   
  select   
  p.spid,   
  s.sid,   
  s.serial# serial_num,   
  s.username user_name,   
  a.type object_type,   
  s.osuser os_user_name,   
  a.owner,   
  a.object object_name,   
  decode(sign(48 - command),   
  1,   
  to_char(command), 'Action Code #' || to_char(command) ) action,   
  p.program oracle_process,   
  s.terminal terminal,   
  s.program program,   
  s.status session_status    
  from v$session s, v$access a, v$process p    
  where s.paddr = p.addr and   
     s.type = 'USER' and    
     a.sid = s.sid  and   
    a.object='SUBSCRIBER_ATTR'   
  order by s.username, s.osuser   
    
  14。回滚段查看   
  select rownum, sys.dba_rollback_segs.segment_name Name, v$rollstat.extents   
  Extents, v$rollstat.rssize Size_in_Bytes, v$rollstat.xacts XActs,   
  v$rollstat.gets Gets, v$rollstat.waits Waits, v$rollstat.writes Writes,   
  sys.dba_rollback_segs.status status from v$rollstat, sys.dba_rollback_segs,   
  v$rollname where v$rollname.name(+) = sys.dba_rollback_segs.segment_name and   
  v$rollstat.usn (+) = v$rollname.usn order by rownum   
    
  15。耗资源的进程(top session)   
  select s.schemaname schema_name,  decode(sign(48 - command), 1,   
  to_char(command), 'Action Code #' || to_char(command) ) action,  status   
  session_status,  s.osuser os_user_name,  s.sid,     p.spid ,     s.serial# serial_num,    
  nvl(s.username, '[Oracle process]') user_name,  s.terminal terminal,    
  s.program program,  st.value criteria_value from v$sesstat st,  v$session s , v$process p    
  where st.sid = s.sid and  st.statistic# = to_number('38') and  ('ALL' = 'ALL'   
  or s.status = 'ALL') and p.addr = s.paddr order by st.value desc, p.spid asc, s.username asc, s.osuser asc   
    
  16。查看锁(lock)情况   
  select /*+ RULE */ ls.osuser os_user_name,  ls.username user_name,    
  decode(ls.type, 'RW', 'Row wait enqueue lock', 'TM', 'DML enqueue lock', 'TX',   
  'Transaction enqueue lock', 'UL', 'User supplied lock') lock_type,    
  o.object_name object,  decode(ls.lmode, 1, null, 2, 'Row Share', 3,   
  'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive', null)   
  lock_mode,  o.owner,  ls.sid,  ls.serial# serial_num,  ls.id1,  ls.id2     
  from sys.dba_objects o, (  select s.osuser,  s.username,  l.type,    
  l.lmode,  s.sid,  s.serial#,  l.id1,  l.id2  from v$session s,    
  v$lock l  where s.sid = l.sid ) ls where o.object_id = ls.id1 and  o.owner   
  <> 'SYS'  order by o.owner, o.object_name   
    
  17。查看等待(wait)情况   
  SELECT v$waitstat.class, v$waitstat.count count, SUM(v$sysstat.value) sum_value   
  FROM v$waitstat, v$sysstat WHERE v$sysstat.name IN ('db block gets',   
  'consistent gets') group by v$waitstat.class, v$waitstat.count   
    
  18。查看sga情况   
  SELECT NAME, BYTES FROM SYS.V_$SGASTAT ORDER BY NAME ASC   
    
  19。查看catched object   
  SELECT owner,       name,       db_link,       namespace,    
        type,       sharable_mem,       loads,       executions,    
        locks,       pins,       kept    FROM v$db_object_cache   
          
  20。查看V$SQLAREA   
  SELECT SQL_TEXT, SHARABLE_MEM, PERSISTENT_MEM, RUNTIME_MEM, SORTS,   
  VERSION_COUNT, LOADED_VERSIONS, OPEN_VERSIONS, USERS_OPENING, EXECUTIONS,   
  USERS_EXECUTING, LOADS, FIRST_LOAD_TIME, INVALIDATIONS, PARSE_CALLS, DISK_READS,   
   BUFFER_GETS, ROWS_PROCESSED FROM V$SQLAREA   
     
  21。查看object分类数量   
  select decode (o.type#,1,'INDEX' , 2,'TABLE' , 3 , 'CLUSTER' , 4, 'VIEW' , 5 ,   
  'SYNONYM' , 6 , 'SEQUENCE' , 'OTHER' ) object_type , count(*) quantity from   
  sys.obj$ o where o.type# > 1 group by decode (o.type#,1,'INDEX' , 2,'TABLE' , 3   
  , 'CLUSTER' , 4, 'VIEW' , 5 , 'SYNONYM' , 6 , 'SEQUENCE' , 'OTHER' ) union select   
  'COLUMN' , count(*) from sys.col$ union select 'DB LINK' , count(*) from   
    
  22。按用户查看object种类   
  select u.name schema,  sum(decode(o.type#, 1, 1, NULL)) indexes,    
  sum(decode(o.type#, 2, 1, NULL)) tables,  sum(decode(o.type#, 3, 1, NULL))   
  clusters,  sum(decode(o.type#, 4, 1, NULL)) views,  sum(decode(o.type#, 5, 1,   
  NULL)) synonyms,  sum(decode(o.type#, 6, 1, NULL)) sequences,    
  sum(decode(o.type#, 1, NULL, 2, NULL, 3, NULL, 4, NULL, 5, NULL, 6, NULL, 1))   
  others  from sys.obj$ o, sys.user$ u  where o.type# >= 1 and  u.user# =   
  o.owner# and  u.name <> 'PUBLIC'  group by u.name  order by   
  sys.link$ union select 'CONSTRAINT' , count(*) from sys.con$   
    
  23。有关connection的相关信息   
  1)查看有哪些用户连接   
  select s.osuser os_user_name,  decode(sign(48 - command), 1, to_char(command),   
   'Action Code #' || to_char(command) ) action,   p.program oracle_process,     
  status session_status,  s.terminal terminal,  s.program program,    
  s.username user_name,  s.fixed_table_sequence activity_meter,  '' query,    
  0 memory,  0 max_memory,   0 cpu_usage,  s.sid,  s.serial# serial_num     
  from v$session s,  v$process p  where s.paddr=p.addr and  s.type = 'USER'    
   order by s.username, s.osuser   
     
  2)根据v.sid查看对应连接的资源占用等情况   
  select n.name,   
  v.value,   
  n.class,   
  n.statistic#    
  from v$statname n,   
  v$sesstat v   
  where v.sid = 71 and   
  v.statistic# = n.statistic#   
  order by n.class, n.statistic#   
    
  3)根据sid查看对应连接正在运行的sql   
  select /*+ PUSH_SUBQ */   
  command_type,   
  sql_text,   
  sharable_mem,   
  persistent_mem,   
  runtime_mem,   
  sorts,   
  version_count,   
  loaded_versions,   
  open_versions,   
  users_opening,   
  executions,   
  users_executing,   
  loads,   
  first_load_time,   
  invalidations,   
  parse_calls,   
  disk_reads,   
  buffer_gets,   
  rows_processed,   
  sysdate start_time,   
  sysdate finish_time,   
  '>' || address sql_address,   
  'N' status   
  from v$sqlarea   
  where address = (select sql_address from v$session where sid = 71)   
    
  24.查询表空间使用情况  
  select a.tablespace_name "表空间名称",   
  100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "占用率(%)",   
  round(a.bytes_alloc/1024/1024,2) "容量(M)",   
  round(nvl(b.bytes_free,0)/1024/1024,2) "空闲(M)",   
  round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2) "使用(M)",   
  Largest "最大扩展段(M)",   
  to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') "采样时间"   
  from (select f.tablespace_name,   
   sum(f.bytes) bytes_alloc,   
   sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes   
  from dba_data_files f   
  group by tablespace_name) a,   
  (select f.tablespace_name,   
    sum(f.bytes) bytes_free   
  from dba_free_space f   
  group by tablespace_name) b,   
  (select round(max(ff.length)*16/1024,2) Largest,   
   ts.name tablespace_name   
  from sys.fet$ ff, sys.file$ tf,sys.ts$ ts   
  where ts.ts#=ff.ts# and ff.file#=tf.relfile# and ts.ts#=tf.ts#   
  group by ts.name, tf.blocks) c   
  where a.tablespace_name = b.tablespace_name and a.tablespace_name = c.tablespace_name;   
--还有下面这句  
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",  
       D.TOT_GROOTTE_MB "表空间大小(M)",  
       D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",  
       TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,  
                     2),  
               '990.99') "使用比",  
       F.TOTAL_BYTES "空闲空间(M)",  
       F.MAX_BYTES "最大块(M)"  
FROM (SELECT TABLESPACE_NAME,  
               ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,  
               ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES  
          FROM SYS.DBA_FREE_SPACE  
         GROUP BY TABLESPACE_NAME) F,  
       (SELECT DD.TABLESPACE_NAME,  
               ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB  
          FROM SYS.DBA_DATA_FILES DD  
         GROUP BY DD.TABLESPACE_NAME) D  
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME  
ORDER BY 4 DESC;  
    
  25. 查询表空间的碎片程度   
  select tablespace_name,count(tablespace_name) from dba_free_space group by tablespace_name   
  having count(tablespace_name)>10;   
  alter tablespace name coalesce;   
  alter table name deallocate unused;   
  create or replace view ts_blocks_v as   
  select tablespace_name,block_id,bytes,blocks,'free space' segment_name from dba_free_space   
  union all   
  select tablespace_name,block_id,bytes,blocks,segment_name from dba_extents;   
  select * from ts_blocks_v;   
  select tablespace_name,sum(bytes),max(bytes),count(block_id) from dba_free_space   
  group by tablespace_name;   
    
  26.查看有哪些实例在运行:   
  select * from v$active_instances;  
其它:  
    设置一列的宽度:col colname format a10;  
    设置一页的行数:set pagesize 50; 
分享到:
评论

相关推荐

    ORACLE常用SQL语句大全.pdf

    Oracle 常用 SQL 语句大全 本文档总结了 Oracle 中常用的 SQL 语句,包括数据库的创建、删除、备份、表的创建、删除、修改、索引的创建、视图的创建等基本操作,以及一些高级查询运算符的使用。 一、数据库操作 ...

    oracle常用sql.rar

    "oracle常用sql.rar"这个压缩包文件显然包含了关于Oracle数据库中常用SQL语句的集合,这对于学习和工作中解决常见问题非常有帮助。以下是一些Oracle SQL的重要知识点: 1. **锁表查询**: 在Oracle中,锁定数据是...

    Oracle 常用SQL技巧经典收藏

    以下是一些关于Oracle常用SQL技巧的经典要点: 1. **避免在SELECT子句中使用“*”**:在SQL查询中,使用通配符“*”代表选择所有列,虽然方便但效率低下。Oracle在解析时需要查询数据字典获取所有列名,增加了额外...

    oracle常用SQL语句(汇总版).docx

    Oracle 常用 SQL 语句汇总 Oracle 是一个功能强大且复杂的关系数据库管理系统,它提供了多种 SQL 语句来管理和操作数据库。在本文中,我们将详细介绍 Oracle 中常用的 SQL 语句,包括数据控制语句(DML)、数据定义...

    oracle常用sql整理

    本文将基于"oracle常用sql整理"的主题,深入探讨Oracle SQL的一些核心概念、语句及其实用技巧,适合初级到中级水平的学习者。 一、SQL基础 SQL是标准化的查询语言,分为DDL(Data Definition Language)、DML(Data...

    ORACLE常用SQL.txt

    ORACLE常用SQL.txt ORACLE常用SQL.txt ORACLE常用SQL.txt

    oracle常用sql语句大全 注释完整 放心使用

    本资料集包含了Oracle数据库中常用SQL语句的大全,注释完整,非常适合初学者和有经验的开发者参考使用。 1. **数据查询(SELECT语句)**: - `SELECT * FROM table_name;`:查询表table_name中的所有列。 - `...

    wxh oracle常用SQL脚本

    第一条SQL脚本用于统计Oracle数据库中的I/O操作,具体是针对数据文件的物理块读取和写入次数,以及总的I/O操作次数。这在数据库性能调优中非常重要,可以帮助DBA(数据库管理员)识别哪些表空间或数据文件产生了大量...

    oracle 常用SQL查询

    以下是一些常用的Oracle SQL查询,这些查询涵盖了从基础的表空间信息到复杂的数据库对象状态和性能监控。 1. **查看表空间的名称及大小**: 这个查询通过`dba_tablespaces`和`dba_data_files`视图获取每个表空间的...

    Oracle常用SQL手册.chm

    Oracle常用SQL手册.chm

    Oracle常用SQL查询语句

    根据提供的信息,我们可以总结出以下Oracle数据库中常用的SQL查询语句及它们的功能: ### 1. 查询表空间及其总大小 ```sql SELECT t.tablespace_name, ROUND(SUM(bytes / (1024 * 1024)), 0) AS ts_size FROM dba...

    Oracle常用的SQL语句维护

    本文将深入探讨Oracle中常用的SQL语句以及与数据库表空间相关的维护知识。 首先,让我们了解如何在Oracle中创建表空间。表空间是Oracle数据库中存储数据的逻辑单位,它由一个或多个数据文件组成。创建表空间的SQL...

    oracle常用sql查询.pdf.rar

    oracle常用sql查询.pdf.rar

    Oracle常用sql语句整理.zip

    以下是一些Oracle数据库中常用的SQL语句及其详细解释。 1. **数据查询(SELECT)** - `SELECT column1, column2 FROM table_name;` 用于从表中选择特定列的数据。 - `WHERE condition;` 添加条件过滤结果,如 `...

    ORACLE 常用SQL语句

    ORACLE 常用 SQL 语句 ORACLE 是一种关系数据库管理系统,它提供了多种 SQL 语句来操作和管理数据库。下面将 Introduced 13 种常用的 ORACLE SQL 语句,涵盖字符串处理、数据搜索和修改等方面。 1. ASCII 函数 ...

    oracle 常用SQL语法手册.doc

    Oracle 常用 SQL 语法手册 Oracle 是一种关系数据库管理系统, SQL(Structured Query Language)是 Oracle 数据库管理系统的标准语言。下面是 Oracle 常用 SQL 语法手册的知识点总结: 一、SELECT 语句 SELECT ...

    oracle常用sql.pdf

    oracle常用sql

    oracle常用sql语句

    oracle常用sql语句

    Oracle-Sql语句资料oracle+110个常用函数经典SQL语句大全.zip

    Oracle_Sql语句资料oracle+110个常用函数经典SQL语句大全,可供学习参考。

Global site tag (gtag.js) - Google Analytics