Oracle查询表空间大小及每个表所占空间的大小语句示例

目录
  • 1、查询数据库中所有的表空间以及表空间所占空间的大小,直接执行语句就可以了
  • 2、查看表空间物理文件的名称及大小
  • 3、查询所有表空间以及每个表空间的大小,已用空间,剩余空间,使用率和空闲率,直接执行语句就可以了
  • 4、查询某个具体的表所占空间的大小,把 TABLE_NAME 换成具体要查询的表的名称就可以了
  • 5、创建数据库实例
  • 6、创建表空间
  • 7、创建用户并指定默认表空间,并为其授予权限
  • 8、创建表(数据段)
  • 9、删除表空间
  • 10、删除用户
  • 总结

查询 Oracle 数据库表空间的大小以及每个表所占空间的大小,在网上搜索了一些查询语句,在此记录一下:

1、查询数据库中所有的表空间以及表空间所占空间的大小,直接执行语句就可以了

SELECT
	tablespace_name,
	sum( bytes ) / 1024 / 1024
FROM
	dba_data_files
GROUP BY
	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
	a.tablespace_name,
	total,
	free,
	total - free AS used,
	substr( free / total * 100, 1, 5 ) AS "FREE%",
	substr( ( total - free ) / total * 100, 1, 5 ) AS "USED%"
FROM
	(SELECT tablespace_name, sum( bytes ) / 1024 / 1024 AS total FROM dba_data_files GROUP BY tablespace_name) a,
	(SELECT tablespace_name, sum( bytes ) / 1024 / 1024 AS free FROM dba_free_space GROUP BY tablespace_name) b
WHERE
	a.tablespace_name = b.tablespace_name
ORDER BY
	a.tablespace_name;

4、查询某个具体的表所占空间的大小,把 TABLE_NAME 换成具体要查询的表的名称就可以了

SELECT
	t.segment_name,
	t.segment_type,
	sum( t.bytes / 1024 / 1024 ) "占用空间(M)"
FROM
	dba_segments t
WHERE
	t.segment_type = 'TABLE'
	AND t.segment_name = 'TABLE_NAME'
GROUP BY
	OWNER,
	t.segment_name,
	t.segment_type;

一些 Oracle 基础语句

在逻辑结构中, Oracle 从大到下,分别是如下的结构:数据库实例 -> 表空间 -> 数据段(表) -> 区 -> 块。

也就是说当我们要使用 Oracle 作为项目的数据库时,我们需要先创建数据库实例,之后创建表空间,再创建相对应的表(也就是逻辑结构中的数据段)。

5、创建数据库实例

创建数据库实例一般使用 配置移植工具 -> Database Configuration Assistant 来创建。

6、创建表空间

创建名为 animal 的表空间,数据文件为 animal.dbf

create user csy identified by csy default tablespace ANIMAL;

查询当前用户拥有的所的有表空间:

select tablespace_name from user_tablespaces;

7、创建用户并指定默认表空间,并为其授予权限

创建用户:

注意:这里的 ANIMAL(表空间) 必须大写(因为 Oracle 自动将表空间名字全部转为大写)

create user csy identified by csy default tablespace ANIMAL;

最后,赋予用户 DBA 权限:

grant connect, resource, dba to csy;

8、创建表(数据段)

下面的语句在 animal 表控件下创建一个名为 dog 的表:

create table dog
(
    name varchar(12),
    age varchar(12)
)
tablespace animal;

使用下面的语句查看是否添加成功。查看 ANIMAL 表空间下的所有表:

SELECT
	tablespace_name, table_name
FROM
	user_tables
WHERE
	tablespace_name = 'ANIMAL';

注意:上面的 ANIMAL 一定要大写。即使你在创建表空间的时候输入的表空间名是小写的,也还是要大写。

因为 Oracle 在存储表空间的时候自动将名字转化成大写了。

9、删除表空间

drop tablespace ANIMAL including contents and datafiles;

10、删除用户

drop user user_name cascade;

总结

到此这篇关于Oracle查询表空间大小及每个表所占空间的大小的文章就介绍到这了,更多相关Oracle查询表空间大小内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 关于查看MSSQL 数据库 用户每个表 占用的空间大小

    最近做项目需要查看数据用户表的大小,包括记录条数和占用的磁盘空间数目.在网上找了很久其中查看MSSQL数据库每个表占用的空间大小 相对还可以.不过它的2.3中方法返回的数据比较多,有些是我们不关心的数据,我在AdventureWorks2012数据上做的测试.其中第二种方法代码如下: 复制代码 代码如下: View Code if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespacein

  • 浅析mysql 共享表空间与独享表空间以及他们之间的转化

    innodb这种引擎,与MYISAM引擎的区别很大.特别是它的数据存储格式等.对于innodb的数据结构,首先要解决两个概念性的问题: 共享表空间以及独占表空间.什么是共享表空间和独占表空间共享表空间以及独占表空间都是针对数据的存储方式而言的.共享表空间:  某一个数据库的所有的表数据,索引文件全部放在一个文件中,默认这个共享表空间的文件路径在data目录下. 默认的文件名为:ibdata1  初始化为10M.独占表空间:  每一个表都将会生成以独立的文件方式来进行存储,每一个表都有一个.frm

  • 为什么MySQL 删除表数据 磁盘空间还一直被占用

    目录 1.Mysql数据结构 2.表文件大小未更改和mysql设计有关 3.那怎么才能让表大小变小 4.Online DDL 5.总结 最近有个上位机获取下位机上报数据的项目,由于上报频率比较频繁且数据量大,导致数据增长过快,磁盘占用多. 为了节约成本,定期进行数据备份,并通过delete删除表记录. 明明已经执行了delete,可表文件的大小却没减小,令人费解 项目中使用Mysql作为数据库,对于表来说,一般为表结构和表数据.表结构占用空间都是比较小的,一般都是表数据占用的空间. 当我们使用

  • Oracle 创建主键自增表示例代码

    前言 本篇文章给大家主要介绍的是在oracle中如果创建自增长表的方法,这里要用到序列.下面话不多说,我们来看示例代码. 示例代码 create table tb_student ( id NUMBER(10) not null, createtime DATE not null, constraint PK_tb_student primary key (id) ); comment on table "tb_student" is '学生表'; comment on column

  • 批处理ASCII字符比较大小实际次序表

    在批处理中进行 ASCII 字符串大小比较, 本来想当然的以为其大小依据是 ASCII 字符码值, 可事实并非如此. 以下是一个 ASCII 可见字符(码值从 32 到 126) 共 95 个字符 在批处理字符串比较中的实际次序表, 编号从 00 到 94, 编号越小, 字符也越小. 观察此表, 总体次序 部分性地和 ASCII 次序相符. 有以下的几个特点: ① 所有的 标点符号 在 数字字符 的前面; 所有的 数字字符 在 字母的前面; ② 数字字符中, 按对应数字值大小排序; ③ 字母中,

  • Oracle 数据仓库ETL技术之多表插入语句的示例详解

    目录 创建示例表 无条件的 INSERT ALL 语句 有条件的 INSERT ALL 语句 有条件的 INSERT FIRST 语句 多表插入语句的限制 大家好!我是只谈技术不剪发的 Tony 老师. ETL(提取.转换.加载)是指从源系统中提取数据并将其放入数据仓库的过程.Oracle 数据库为 ETL 流程提供了丰富的功能,今天我们就给大家介绍一下 Oracle 多表插入语句,也就是INSERT ALL语句. 创建示例表 我们首先创建一个源数据表和三个目标表: CREATE TABLE s

  • C#获取文件夹所占空间大小的功能

    虽然现在硬盘越来越大,但是清理垃圾还是必要的.这时我们往往需要一个获取文件夹所占空间大小的功能,从而判断垃圾文件的位置. 这个时候,我们常用的在右键属性中查看文件夹所占空间的方法显得效率实在太低.往往需要一些工具来辅助实现这个功能.一般有两个工具可以实现这个功能:diruse和du.diruse是MS在系统中的一个附加的工具,du是sysinternals公司的,不过sysinternals好像已经被MS收购了.这两个工具都是命令行工具,但也保持着MS一贯的简单易用的特点. 这里以diruse为

  • 当面试官问我ArrayList和LinkedList哪个更占空间时,我是这么答的(面试官必问)

    前言 今天介绍一下Java的两个集合类,ArrayList和LinkedList,这两个集合的知识点几乎可以说面试必问的. 对于这两个集合类,相信大家都不陌生,ArrayList可以说是日常开发中用的最多的工具类了,也是面试中几乎必问的,LinkedList可能用的少点,但大多数的面试也会有所涉及,尤其是关于这两者的比较可以说是家常便饭,所以,无论从使用上还是在面试的准备上,对于这两个类的知识点我们都要有足够的了解. ArrayList ArrayList是List接口的一个实现类,底层是基于数

  • JQuery 改变页面字体大小的实现代码(实时改变网页字体大小)

    复制代码 代码如下: /* 对页面上的字体增大.缩小.恢复原始大小 需要在html页面中定义三个元素 元素的class分别为 resetFont.increaseFont.decreaseFont 在本文件的JQuery事件中分别定义了三个元素的click事件来实现增大.缩小.恢复原始大小 */ $(function () { //取得字体大小,在html标记下定义了font-size var originalFontSize = $("html").css("font-si

  • Objective-C中关于实例所占内存的大小详解

    前言 续上一篇文章的介绍,这篇文章就诞生可.建议先看Objective-C 中类的数据结构,因这两部分的内容是不能断的,建议先去看看. 接下来的主题是 Objective-C 中实例所占内存的大小. 以下都是以 64bit 上分析的. 一.instance 所占内存的大小 先定义这样的一个 Class: // 类的申明 @interface SizeObject : NSObject { @private int _no; // int _age; } @end // 类的实现 @impleme

随机推荐