Oracle数据库查询有多少表格,Oracle数据库的表有多大呢?
一般来说,查表占据了多少的物理空间用的是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数据库的表有多大呢?相关推荐
- ssas表格模型 权限控制_如何使用DAX函数查询SSAS表格模型数据库
ssas表格模型 权限控制 To make the first steps into the BI world easier, you just need to build one SSAS Tabu ...
- oracle分页查询sql语句通用,oracle分页查询sql语句,oracle分页查询sql语句详解
oracle分页查询sql语句,oracle分页查询sql语句详解,Oracle分页查询sql语句 Oracle中分页和MySql中的分页不同,MySql中的分页使用关键字limit即可,相对简单一点 ...
- oracle数据库html导出表格,html数据库导出excel表格数据-关于把数据库数据以表格形式导出...
关于把数据库数据以表格形式导出 库中的数据导出到excel,以oracle为例: 最简单的方法---用工plsql dev 执行File =>newReport Window .在sql标签中写 ...
- java对Oracle数据库查询_java 连接Oracle数据库 查询
java 连接Oracle数据库 查询 (2014-03-03 16:07:15) 标签: it 在ADF要先引入jar包 Oracle JDBC ;不然加载驱动不会成功. public static ...
- Oracle数据库查询语句去重,Oracle数据库之SQL---select查询
最好的学习就是实战!因此我的学习也就是从实战中展开的.在一切SQL语句中最基本的莫过于查询语句了,因此笔者也是从select语句开 前言 最好的学习就是实战!因此我的学习也就是从实战中展开的.在一切S ...
- oracle审计查询sql语句,Oracle 数据库审计
保证数据库的安全有两种方式,一种是通过权限的存取控制机制,即通过预先控制来防止安全事件的发生:另一种是数据库审计,即对数据库活动做跟踪记录,当发生安全事件时,通过对数据库活动记录进行审计来发现并修复安 ...
- mysql实验四数据库查询和视图_数据库-第四次实验报告-视图-t-sql语句
实验十报告 创建视图 实验目的 1.掌握创建视图的SQL语句的用法. 2.掌握使用企业管管理器创建视图的方法. 3.掌握使用创建视图向导创建视图的方法. 4.掌握查看视图的系统存储过程的用法. 5.掌 ...
- python获取数据库查询的元数据_Python数据库、MySQL存储引擎、使用分区表、更改表结构、获取数据库元数据...
:1. 数据库基本操作 1.1 创建数据库 - CREATE DATABASE test; #创建数据库 - GRANT ALL ON test.* to user(s); #为指定用户(或所有用户) ...
- 数据库查询的数据导出到xls表,集合数据导出到xls表
//实体类package com.outxls;public class Student {private Integer studentId;private String studentName;p ...
最新文章
- CSS3背景线性渐变
- C语言经典例76-根据n的奇偶性累加
- 如何编写无法维护的代码_编写可维护的前端代码
- Pig安装与配置教程
- consul配置参数大全、详解、总结
- CH 5102 Mobile Service(线性DP)
- leetcode239. 滑动窗口最大值(思路+详解)
- Dreamer 框架 比Struts2 更加灵活
- 高等数学复盘 | 第七册上册第一章——第六章思维导图梳理(复习专用)
- C复合结构——结构体struct
- switch更新找不到服务器,switch更新无法连接服务器(图文)
- html怎么做向下的图标,用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果
- VUE前端开发环境版本查看命令
- WSTMart 国内开源商城系统佼佼者
- Revit二次开发小技巧(十二)创建带洞口的墙
- 如何在Node.js中获取本机本地IP地址
- ChatGPT入门案例|商务智能对话客服(三)
- wordexpansion包 | 新增词向量法构建领域词典
- 风险投资(VC)与私募股权投资(PE)的区别
- Ubuntu 16.04安装NVIDIA驱动(含各种踩坑经历)(GeForce GTX 970)
热门文章
- java计算机毕业设计基于ssm的协同过滤算法的电影推荐系统(源代码+数据库+Lw文档)
- Mac 重置mysql数据库密码
- “北漂”小夫妻新婚后的理财计划
- python 接入百度地图数据包下载_Python爬虫-利用百度地图API接口爬取数据并保存至MySQL数据库...
- java中宏定义,宏定义的使用
- RecyclerView让置顶项置顶
- 微信营销KPI考核标准有哪些?
- 最有范儿的H5制作工具—应用之星之表单控件详解
- (转)如何应对工作中的冲突?
- grpc加TLS加密和令牌认证