`
xinyoulinglei
  • 浏览: 126531 次
社区版块
存档分类
最新评论

oracle表空间查询的基本SQL

阅读更多
查询一般表空间:
SELECT a.tablespace_name "表空间名",
       total 表空间大小,
       free 表空间剩余大小,
       (total - free) 表空间使用大小,
       ROUND((total - free) / total, 4) * 100 "使用率 %"
  FROM (SELECT tablespace_name, SUM(bytes) free
          FROM DBA_FREE_SPACE
         GROUP BY tablespace_name) a,
       (SELECT tablespace_name, SUM(bytes) total
          FROM DBA_DATA_FILES
         GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
   and a.tablespace_name = '查询的表空间名称'

查询临时表空间:
SELECT a.tablespace_name "表空间名",
       total 表空间大小,
       total-used 表空间剩余大小,
       used 表空间使用大小,
       ROUND(used / total, 4) * 100 "使用率 %"
  FROM (SELECT tablespace_name, SUM(bytes_used) used
          FROM v$temp_space_header
         GROUP BY tablespace_name) a,
       (SELECT tablespace_name, SUM(bytes) total
          FROM dba_temp_files
         GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
   and a.tablespace_name = '查询的临时表空间名称'
                            
                            
======================================================
下面介绍Oracle查询用户表空间                                                         
                                                                           
                                                                           
查看当前用户的缺省表空间 select username,default_tablespace from user_users                          
                                                                           
查看当前用户的角色 select * from user_role_privs 查看当前用户的系统权限                              
                                                                           
Oracle查询用户表空间:select * from user_all_tables                                                  
                                                                  
Oracle查询所有函数和储存过程:select * from user_source                                              
                                                                  
Oracle查询所有用户:select * from all_users.select * from dba_users                                  
                                                                  
Oracle查看当前用户连接:select * from v$Session                                                   
                                                                  
Oracle查看当前用户权限:select * from session_privs  
================================================================

1.查询oracle表空间的使用情况

select b.file_id  文件ID,
  b.tablespace_name  表空间,
  b.file_name     物理文件名,
  b.bytes       总字节数,
  (b.bytes-sum(nvl(a.bytes,0)))   已使用,
  sum(nvl(a.bytes,0))        剩余,
  sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比
  from dba_free_space a,dba_data_files b
  where a.file_id=b.file_id
  group by b.tablespace_name,b.file_name,b.file_id,b.bytes
  order by b.tablespace_name



2.查询oracle系统用户的默认表空间和临时表空间

select username,default_tablespace,temporary_tablespace from dba_users



3.查询单张表的使用情况

select segment_name,bytes from dba_segments where segment_name = 'RE_STDEVT_FACT_DAY' and owner = USER

RE_STDEVT_FACT_DAY是您要查询的表名称



4.查询所有用户表使用大小的前三十名

select * from (select segment_name,bytes from dba_segments where owner = USER order by bytes desc ) where rownum <= 30



5.查询当前用户默认表空间的使用情况

select tablespacename,sum(totalContent),sum(usecontent),sum(sparecontent),avg(sparepercent)
from
(
SELECT b.file_id as id,b.tablespace_name as tablespacename,b.bytes as totalContent,(b.bytes-sum(nvl(a.bytes,0))) as usecontent,sum(nvl(a.bytes,0)) as sparecontent,sum(nvl(a.bytes,0))/(b.bytes)*100  as sparepercent
FROM dba_free_space a,dba_data_files b
WHERE a.file_id=b.file_id and b.tablespace_name = (select default_tablespace from dba_users where username = user) 
group by b.tablespace_name,b.file_name,b.file_id,b.bytes
)
GROUP BY tablespacename



6.查询用户表空间的表

select   *  from user_tables

=============================================================================
1.查询用户(数据)表空间

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



2.查询临时表空间

SELECT d.status "Status", d.tablespace_name "Name", d.CONTENTS "Type",
d.extent_management "Extent Management",
TO_CHAR (NVL (a.BYTES / 1024 / 1024, 0), '99,999,990.900') "Size (M)",
TO_CHAR (NVL (t.BYTES, 0) / 1024 / 1024, '99999999.999')
|| '/'
|| TO_CHAR (NVL (a.BYTES / 1024 / 1024, 0), '99999999.999') "Used (M)",
TO_CHAR (NVL (t.BYTES / a.BYTES * 100, 0), '990.00') "Used %"
FROM SYS.dba_tablespaces d,
(SELECT tablespace_name, SUM (BYTES) BYTES
FROM dba_temp_files
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM (bytes_cached) BYTES
FROM v$temp_extent_pool
GROUP BY tablespace_name) t
WHERE d.tablespace_name = a.tablespace_name(+)
AND d.tablespace_name = t.tablespace_name(+)
AND d.extent_management LIKE 'LOCAL'
AND d.CONTENTS LIKE 'TEMPORARY'

-- 收缩临时表空间
alter tablespace tbs_mk_temp coalse;


3.查询某个用户下表 占用的空间
select t.segment_name,sum(t.bytes)/1024/1024
from user_segments t
where segment_name like 'TB%'
group by t.segment_name
order by sum(t.bytes)/1024/1024 desc


4.查询表是否是分区表 ,占用的大小
select *
from user_segments t
where segment_name like 'TB%'
and t.segment_name='TB_FI_FIG_WINNER_CUST_MON'

5.查询 被锁的进程(dba登录)

select sess.sid,sess.serial#, lo.oracle_username,lo.os_user_name,ao.object_name, sess.LOGON_TIME,lo.locked_mode
from v$locked_object lo,dba_objects ao,v$session sess
where ao.object_id = lo.object_id
and lo.session_id = sess.sid
order by sess.LOGON_TIME;


6. 杀掉被锁的进程

alter system kill session '1997,33097';
分享到:
评论

相关推荐

    oracle表空间学习整理,包括常用sql

    本篇文章将深入探讨Oracle表空间的概念、作用、创建方法以及常用的SQL语句,帮助你更好地理解和管理数据库资源。 一、Oracle表空间概念 在Oracle数据库中,表空间是逻辑存储单元,用于组织数据库对象,如表、索引和...

    如何查询Oracle表空间和数据文件信息

    可以通过SQL查询数据字典表来获取信息。以下是一个示例查询: ```sql select a.a1 表空间名称, c.c2 类型, c.c3 区管理, b.b2/1024/1024 表空间大小 M, (b.b2-a.a2)/1024/1024 已使用 M, substr((b.b2-a.a2...

    oracle表空间查看

    通过上述SQL查询,你可以有效地监控和管理Oracle数据库中的表空间资源。了解这些查询对于确保数据库性能和稳定性至关重要。此外,掌握如何将查询结果保存到文件中也是非常实用的技能,可以帮助你在日常工作中更高效...

    oracle 表空间创建

    "Oracle 表空间创建" Oracle 表空间创建是 Oracle 数据库中的一种基本...在本节中,我们讨论了 Oracle 表空间创建的基本概念和步骤,并提供了相关的 SQL 语句,以便于读者更好地理解和应用 Oracle 表空间创建技术。

    \Oracle 表空间与数据文件

    通过以上内容,我们详细了解了Oracle中的表空间与数据文件的概念、分类以及它们在Oracle数据库存储结构中的作用,并学习了如何通过SQL查询来查看和管理这些表空间和数据文件。这对于管理和优化Oracle数据库的性能至...

    Oracle 表空间查询与操作方法

    #### 一、Oracle表空间基本信息查询 1. **查询Oracle表空间使用情况** ```sql SELECT b.file_id AS file_id, b.tablespace_name AS tablespace, b.file_name AS filename, b.bytes AS total_size, (b.bytes ...

    oracle表空间容量查询以及表空间扩容

    在 Oracle 中,可以使用 SQL 语句来查询表空间的容量信息。以下是查询表空间容量的 SQL 语句: ```sql SELECT TABLESPACE_NAME "表空间", To_char(Round(BYTES / 1024, 2), '99990.00') || '' "实有", To_char...

    oracle创建表空间用户等

    查询表空间空闲空间 查询每个表空间的空闲空间大小: ```sql SELECT tablespace_name, SUM(bytes)/1024/1024 AS free_space_mb FROM dba_free_space GROUP BY tablespace_name; ``` ##### 3. 调整数据文件大小 ...

    Oracle表空间操作命令

    例如,通过以下SQL语句可以查询表空间的详细信息: ```sql SELECT d.status "Status", d.tablespace_name "Name", d.contents "Type", d.extent_management "ExtentManagement", NVL(a.bytes/1024/1024, 0) ...

    oracle创建表,索引,表空间,触发器,schema用户,序列的Sql文

    以上是Oracle数据库中创建表、索引、表空间、触发器、用户和序列的基本操作。在实际应用中,根据业务需求可能还需要考虑其他因素,如分区、约束、存储过程、视图等。掌握这些基本操作对于理解和管理Oracle数据库至关...

    oracle创建表空间的sql

    创建表空间的基本SQL语句格式如下: ```sql CREATE TABLESPACE tablespace_name STORAGE ( INITIAL size NEXT size MINEXTENTS number MAXEXTENTS number | UNLIMITED PCTINCREASE percent ) DATAFILE '...

    创建ORACLE表空间

    ### 创建Oracle表空间知识点 #### 一、Oracle表空间概述 在Oracle数据库中,表空间是逻辑存储单元,用于组织和管理数据文件。一个表空间可以包含多个数据文件,而一个数据文件只能属于一个表空间。Oracle中的表...

    oracle 创建表空间命令

    在Oracle数据库管理系统中,创建表空间是管理数据库存储空间的关键操作。表空间是数据库中用于存储数据对象(如表、索引、视图等)的逻辑结构。它将物理磁盘上的一个或多个数据文件组织成一个逻辑单元,使得数据库...

    Oracle 表空间建立方法

    在Oracle数据库管理系统中,表空间是逻辑存储单元的基本单位。每个数据库至少包含一个表空间,默认情况下为`SYSTEM`表空间。表空间由一个或多个数据文件组成,用于存储用户数据、索引、临时数据等。 #### 二、创建...

    查询一个Oracle表所占的物理空间大小

    2. **使用DBMS_SPACE.TOTAL_SPACE**:这是一个Oracle提供的包,可以用来查询表空间中使用的空间大小。例如: ```sql SELECT DBMS_SPACE.TOTAL_SPACE('FILE_LOG') AS total_space; ``` 3. **使用DBMS_SPACE.COUNT...

    oracle定时删除表空间的数据并释放表空间

    1. **Oracle 表空间(Tablespaces)**:表空间是Oracle数据库中存储数据的基本单位,它由一个或多个数据文件组成。每个表、索引和其他对象都会被分配到特定的表空间中。理解表空间的工作原理对于管理数据库空间至关...

    Oracle-SQL.rar_oracle_oracle sql_sql

    通过这份“Oracle SQL.ppt”,初学者可以逐步学习并实践这些基本概念和操作,为后续的数据库管理、开发或数据分析工作奠定坚实基础。记住,实践是检验学习效果的最好方式,理论结合实际操作才能真正掌握Oracle SQL。

    oracle表空间变动注意事项

    在深入探讨表空间变动前,首先需要了解Oracle表空间的一些基本概念: 1. **表空间**:Oracle数据库中的逻辑存储单元,由一个或多个数据文件组成。 2. **数据文件**:物理文件,用来存储表空间的数据。 3. **段**:...

    Oracle查看增加表空间语句

    #### 二、查询表空间基本信息 **1. 查询表空间总大小、已用空间、剩余空间** 给定文件中的第一段SQL语句展示了如何获取表空间的总大小、已用空间、剩余空间等信息。具体来说: - `Ta.Define_Size`表示定义的表...

    ORACLE 表空间的部分操作

    在Oracle数据库管理中,表空间是数据逻辑存储的基本单位,用于组织和管理数据库中的数据。本文将详细介绍Oracle中关于表空间的一些关键操作,包括创建、修改、管理和删除表空间的过程,以及如何处理表空间的在线与...

Global site tag (gtag.js) - Google Analytics