oracle-admin-查看表、索引、分区表用空间大小

简介:

oracle下查看表、索引、分区表用空间大小

1.查看表和索引占用的空间

set line 300
col segment_name for a30
  SELECT s.segment_name,
         s.segment_type,
         s.tablespace_name,
         ROUND (SUM (s.bytes) / 1024 / 1024) Mbytes
    FROM dba_segments s, dba_indexes i
   WHERE     (s.segment_name = i.index_name OR s.segment_name = i.table_name)
         AND i.table_name IN ('tableB', 'tablA')
GROUP BY s.segment_name, s.segment_type, s.tablespace_name
ORDER BY 2,1;

2.查看用户表、索引、分区表占用空间

select owner,segment_type,segment_name, sum(bytes)/1024/1024/1024 siez_Gb from dba_segments group by owner,segment_type,segment_name order by 4 desc;

3.表占用空间

select segment_name, sum(bytes)/1024/1024 Mbytese from dba_segments where segment_type='TABLE' group by segment_name;

4.索引占用空间

select segment_name ,sum(bytes)/1024/1024 from dba_segments where segment_type ='INDEX' group by segment_name;

5.分区表TABLE PARTITION占用空间

select segment_name,sum(bytes)/1024/1024 Mbytes from dba_segments where segment_type='TABLE PARTITION' group by segment_name;

6.查看表的创建时间:

alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
select created,last_ddl_time from dba_objects where owner='NINVOICE' and object_name='TMP_VER';

7.查看表的表的大小:

select sum(bytes)/1024/1024||'M' from dba_segments where owner='NINVOICE' and segment_name='TMP_VER';

8.查看某个时间创建的对象

SQL> col object_name for a20;
SQL>  select object_name,created,last_ddl_time from dba_objects where owner='NINVOICE' and created>=to_date('2013-05-24 00:28:19','yyyy-mm-dd hh24:mi:ss')

OBJECT_NAME          CREATED             LAST_DDL_TIME
-------------------- ------------------- -------------------
TMP_VER              2013-05-24 10:28:19 2013-05-24 10:28:19
TMP_VER2             2013-05-24 11:36:59 2013-05-24 11:36:59
TMP_VER3             2013-05-24 11:45:17 2013-05-24 11:45:17
TMP_VER5             2013-05-24 11:45:47 2013-05-24 11:45:47

9.查看表大小排序(包括分区表,但不统计索引)

  SELECT owner,
         segment_name,
       -- partition_name,
         segment_type,
         --tablespace_name,
         round(SUM (bytes / 1024 / 1024 / 1024)) size_g
    FROM dba_segments
   WHERE owner = 'MESRPT' AND segment_type  like  'TABLE%' --and segment_name='tableA'
GROUP BY owner,
         segment_name
       -- ,partition_name
         ,segment_type
        -- ,tablespace_name
         order by size_g desc;

10.按表行数排序(依赖数据统计信息收集是否最新)

select table_name,num_rows,last_analyzed from user_tables where num_rows>200000 and last_analyzed>sysdate-200 order by 2 desc;


--
select owner,table_name,tablespace_name,status,num_rows,last_analyzed,partitioned,read_only,blocks,blocks*8/1024/1024 G from dba_tables where table_name='tableA';

select owner,segment_name,partition_name,segment_type,tablespace_name,blocks,bytes,bytes/1024/1024/1024 G from dba_segments where segment_name='tableA';
目录
相关文章
|
6月前
|
SQL Oracle 关系型数据库
Oracle-index索引解读
Oracle-index索引解读
169 0
|
13天前
|
SQL Oracle 关系型数据库
[Oracle]索引
本文介绍了数据库索引的基本概念、优化查询的原理及分类。索引是一种数据结构(如B树或B+树),通过排序后的`rowid`来优化查询性能。文章详细解释了索引的构建过程、B+树的特点及其优势,并介绍了五种常见的索引类型:唯一索引、组合索引、反向键索引、位图索引和基于函数的索引。每种索引都有其适用场景和限制,帮助读者更好地理解和应用索引技术。
30 1
[Oracle]索引
|
4月前
|
存储 监控 Oracle
关系型数据库Oracle空间不足
【7月更文挑战第15天】
60 6
|
4月前
|
存储 Oracle 关系型数据库
关系型数据库Oracle 空间不足
【7月更文挑战第16天】
52 2
|
6月前
|
Kubernetes Oracle 关系型数据库
实时计算 Flink版产品使用合集之是否支持 Oracle 分区表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
存储 Oracle 关系型数据库
Oracle索引知识看这一篇就足够
Oracle索引知识看这一篇就足够
|
6月前
|
存储 Oracle 关系型数据库
Oracle 12c的多重索引:数据的“多维导航仪”
【4月更文挑战第19天】Oracle 12c的多重索引提升数据查询效率,如同多维导航仪。在同一表上创建针对不同列的多个索引,加速检索过程。虽然过多索引会增加存储和维护成本,但合理选择和使用索引策略,结合位图、函数索引等高级特性,能优化查询,应对复杂场景。数据管理员应善用这些工具,根据需求进行索引管理,支持企业数据分析。
|
索引
Oracle-序列、索引和同义词
Oracle-序列、索引和同义词
48 0
|
6月前
|
存储 数据库
发现oracle10gSYSAUX空间没有了进行处理
发现oracle10gSYSAUX空间没有了进行处理
39 0
|
6月前
|
SQL Oracle 关系型数据库
Oracle-使用切片删除的方式清理非分区表中的超巨数据
Oracle-使用切片删除的方式清理非分区表中的超巨数据
106 1

推荐镜像

更多