Oracle表空间大小的查看方法应该是我们都需要掌握的知识,下面这篇文章主要给大家介绍了关于Oracle查询表空间大小及每个表所占空间的大小语句的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
查询 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查询表空间大小内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:Oracle查询表空间大小及每个表所占空间的大小语句示例
- Oracle 删除大量表记录操作分析总结 2023-07-23
- 基于Python制作一个简单的文章搜索工具 2023-07-28
- MySQL8.0.28安装教程详细图解(windows 64位) 2023-07-26
- 搭建单机Redis缓存服务的实现 2023-07-13
- Mongodb启动报错完美解决方案:about to fork child process,waiting until server is ready for connections. 2023-07-16
- SQLSERVER调用C#的代码实现 2023-07-29
- redis清除数据 2023-09-13
- 在阿里云CentOS 6.8上安装Redis 2023-09-12
- Numpy中如何创建矩阵并等间隔抽取数据 2023-07-28
- SQL Server 2022 AlwaysOn新特性之包含可用性组详解 2023-07-29