一般来说,查表占据了多少的物理空间用的是dba_segments这个数据字典,这个数据字典展示了segment_type(段类型,如table,index,function,procedure 等等的段类型),bytes(段大小),blocks(段占用了多少个数据块)extents(分配了多少个区)等吧,信息很详细,可以直接select * from dba_segments;查看,用具有查看数据字典权限的用户查看。(给用户授予了SELECT_CATALOG_ROLE角色,普通用户就具有了查询数据字典的权限。)一般不要给普通用户dba角色,保持权限最小化原则。

1. 查看一般表的大小

select segment_name,segment_type,bytes/1024/1024 M from dba_segments where segment_name='SETTINGS$' and segment_type='TABLE';

2. 查看带有LOB字段的表的大小

LOB字段是有额外的专门区域存放,查看带有LOB字段的表的大小比较复杂,分为了普通的字段大小,LOB字段大小,LOB索引字段大小,三个部分。

SELECT(SELECTSUM(S.BYTES/1024/1024/1024)

-- The Table Segment size

FROMDBA_SEGMENTS SWHERES.OWNER =UPPER('表的owner')AND(S.SEGMENT_NAME =UPPER('表名'))) + (SELECT

SUM(S.BYTES/1024/1024/1024)

-- The Lob Segment Size

FROMDBA_SEGMENTS S, DBA_LOBS LWHERES.OWNER =UPPER('表的owner')AND(L.SEGMENT_NAME = S.SEGMENT_NAMEANDL.TABLE_NAME =UPPER('表名')ANDL.OWNER =

UPPER('表的owner'))) + (SELECTSUM(S.BYTES/1024/1024/1024)

-- The Lob Index size

FROMDBA_SEGMENTS S, DBA_INDEXES IWHERES.OWNER =UPPER('表的owner')AND

(I. INDEX_NAME = S.SEGMENT_NAME ANDI.TABLE_NAME =UPPER('表名')ANDINDEX_TYPE='LOB'ANDI.OWNER =UPPER('表的owner')))"TOTAL TABLE SIZE"FROMDUAL;

详细介绍内容可以查看Doc ID 118531.1

如果想查看这个库里有多少个带有LOB字段的表呢?通过dba_lobs可以查看。

例如:select distinct owner,table_name from dba_lobs where owner in ('***',’***’);

如果搜出几百个几千个LOB字段的表,一个个查大小,会很久…………

怎么把带有LOB字段的表一次性列出来呢?

先创建一个临时表:

SQL>createtablecandidates (owner varchar2(30),segment_name varchar2(81));

再把上面查出来的带有LOB字段的表插入进临时表里:

SQL>insertintocandidatesvalues('owner','table_name');

然后利用游标:

SQL>setserveroutputon

SQL> declare

cursorcur_tempisselectowner, segment_namefromcandidates;

v_owner varchar2(30);

v_segment_name varchar2(81);

v_total_table_size number;

begin

opencur_temp;

fetchcur_tempintov_owner,v_segment_name;

while cur_temp%FOUND

loop

SELECT

(

SELECT

nvl(SUM(S.BYTES/1024/1024/1024),0)

FROM

DBA_SEGMENTS S

WHERE

S.OWNER = UPPER(v_owner)AND

(S.SEGMENT_NAME = UPPER(v_segment_name)))

+

(SELECT

nvl(SUM(S.BYTES/1024/1024/1024),0)

FROM

DBA_SEGMENTS S,

DBA_LOBS L

WHERE

S.OWNER = UPPER(v_owner)AND

(L.SEGMENT_NAME = S.SEGMENT_NAME ANDL.TABLE_NAME =UPPER(v_segment_name)AND

L.OWNER = UPPER(v_owner))

)

+

(SELECT

nvl(SUM(S.BYTES/1024/1024/1024),0)

FROM

DBA_SEGMENTS S,

DBA_INDEXES I

WHERE

S.OWNER = UPPER(v_owner)AND

(I.INDEX_NAME = S.SEGMENT_NAME ANDI.TABLE_NAME =UPPER(v_segment_name)ANDINDEX_TYPE='LOB'ANDI.OWNER =UPPER(v_owner))

) "TOTAL TABLE SIZE"intov_total_table_size

FROM

DUAL;

DBMS_OUTPUT.PUT_LINE('Table '||v_segment_name||': '||v_total_table_size);

fetchcur_tempintov_owner,v_segment_name;

endloop;

end;

/

就会把带有LOB字段的表大小都列出来了。

一般查大小就只查dba_segments了,查LOB的时候好像不多。偶尔查一下就用步骤2的方法就行,也是官方提供的。

【编辑推荐】

【责任编辑:未丽燕 TEL:(010)68476606】

点赞 0

Oracle数据库查询有多少表格,Oracle数据库的表有多大呢?相关推荐

  1. ssas表格模型 权限控制_如何使用DAX函数查询SSAS表格模型数据库

    ssas表格模型 权限控制 To make the first steps into the BI world easier, you just need to build one SSAS Tabu ...

  2. oracle分页查询sql语句通用,oracle分页查询sql语句,oracle分页查询sql语句详解

    oracle分页查询sql语句,oracle分页查询sql语句详解,Oracle分页查询sql语句 Oracle中分页和MySql中的分页不同,MySql中的分页使用关键字limit即可,相对简单一点 ...

  3. oracle数据库html导出表格,html数据库导出excel表格数据-关于把数据库数据以表格形式导出...

    关于把数据库数据以表格形式导出 库中的数据导出到excel,以oracle为例: 最简单的方法---用工plsql dev 执行File =>newReport Window .在sql标签中写 ...

  4. java对Oracle数据库查询_java 连接Oracle数据库 查询

    java 连接Oracle数据库 查询 (2014-03-03 16:07:15) 标签: it 在ADF要先引入jar包 Oracle JDBC ;不然加载驱动不会成功. public static ...

  5. Oracle数据库查询语句去重,Oracle数据库之SQL---select查询

    最好的学习就是实战!因此我的学习也就是从实战中展开的.在一切SQL语句中最基本的莫过于查询语句了,因此笔者也是从select语句开 前言 最好的学习就是实战!因此我的学习也就是从实战中展开的.在一切S ...

  6. oracle审计查询sql语句,Oracle 数据库审计

    保证数据库的安全有两种方式,一种是通过权限的存取控制机制,即通过预先控制来防止安全事件的发生:另一种是数据库审计,即对数据库活动做跟踪记录,当发生安全事件时,通过对数据库活动记录进行审计来发现并修复安 ...

  7. mysql实验四数据库查询和视图_数据库-第四次实验报告-视图-t-sql语句

    实验十报告 创建视图 实验目的 1.掌握创建视图的SQL语句的用法. 2.掌握使用企业管管理器创建视图的方法. 3.掌握使用创建视图向导创建视图的方法. 4.掌握查看视图的系统存储过程的用法. 5.掌 ...

  8. python获取数据库查询的元数据_Python数据库、MySQL存储引擎、使用分区表、更改表结构、获取数据库元数据...

    :1. 数据库基本操作 1.1 创建数据库 - CREATE DATABASE test; #创建数据库 - GRANT ALL ON test.* to user(s); #为指定用户(或所有用户) ...

  9. 数据库查询的数据导出到xls表,集合数据导出到xls表

    //实体类package com.outxls;public class Student {private Integer studentId;private String studentName;p ...

最新文章

  1. CSS3背景线性渐变
  2. C语言经典例76-根据n的奇偶性累加
  3. 如何编写无法维护的代码_编写可维护的前端代码
  4. Pig安装与配置教程
  5. consul配置参数大全、详解、总结
  6. CH 5102 Mobile Service(线性DP)
  7. leetcode239. 滑动窗口最大值(思路+详解)
  8. Dreamer 框架 比Struts2 更加灵活
  9. 高等数学复盘 | 第七册上册第一章——第六章思维导图梳理(复习专用)
  10. C复合结构——结构体struct
  11. switch更新找不到服务器,switch更新无法连接服务器(图文)
  12. html怎么做向下的图标,用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果
  13. VUE前端开发环境版本查看命令
  14. WSTMart 国内开源商城系统佼佼者
  15. Revit二次开发小技巧(十二)创建带洞口的墙
  16. 如何在Node.js中获取本机本地IP地址
  17. ChatGPT入门案例|商务智能对话客服(三)
  18. wordexpansion包 | 新增词向量法构建领域词典
  19. 风险投资(VC)与私募股权投资(PE)的区别
  20. Ubuntu 16.04安装NVIDIA驱动(含各种踩坑经历)(GeForce GTX 970)

热门文章

  1. java计算机毕业设计基于ssm的协同过滤算法的电影推荐系统(源代码+数据库+Lw文档)
  2. Mac 重置mysql数据库密码
  3. “北漂”小夫妻新婚后的理财计划
  4. python 接入百度地图数据包下载_Python爬虫-利用百度地图API接口爬取数据并保存至MySQL数据库...
  5. java中宏定义,宏定义的使用
  6. RecyclerView让置顶项置顶
  7. 微信营销KPI考核标准有哪些?
  8. 最有范儿的H5制作工具—应用之星之表单控件详解
  9. (转)如何应对工作中的冲突?
  10. grpc加TLS加密和令牌认证