oracle12c 查看所有表大小、表行数和占用空间信息
时间: 2024-01-14 07:03:04 浏览: 199
可以使用以下 SQL 语句查看 Oracle 数据库中所有表的大小、行数和占用空间信息:
```sql
SELECT
owner,
table_name,
round(num_rows) AS num_rows,
round((num_rows * avg_row_len) / 1024 / 1024, 2) AS size_mb,
round((blocks * 8) / 1024 / 1024, 2) AS space_mb
FROM
all_tables
WHERE
owner NOT IN ('SYS', 'SYSTEM')
ORDER BY
size_mb DESC;
```
其中,`owner` 为表所属用户,`table_name` 为表名,`num_rows` 为表中行数,`avg_row_len` 为平均行长度,`blocks` 为表所占用的块数。
注意,该 SQL 语句只适用于所有者不为 `SYS` 或 `SYSTEM` 的表。如果要查看这些系统表的信息,需要使用其他方法。
相关问题
oracle12c创建表空间命令
在 Oracle 12c 中,你可以使用以下命令创建一个表空间:
```sql
CREATE TABLESPACE tablespace_name
DATAFILE 'file_name'
SIZE size
[REUSE]
[AUTOEXTEND ON [NEXT size] [MAXSIZE max_size]]
[LOGGING | NOLOGGING]
[DEFAULT STORAGE (parameter_clause)]
[EXTENT MANAGEMENT {LOCAL | DICTIONARY}]
[SEGMENT SPACE MANAGEMENT {AUTO | MANUAL}]
[BLOCKSIZE integer]
[FLASHBACK ON | OFF]
[ENCRYPTION {ON | OFF}]
[COMPRESSION {ON | OFF | BASIC}]
[CACHE | NOCACHE]
[KEEP | NOKEEP]
[TEMPORARY]
[TEMPFILE 'tempfile_spec' [SIZE size] [AUTOEXTEND ON [NEXT size] [MAXSIZE max_size]]]
[UNIFORM SIZE integer]
[SEGMENT SPACE MANAGEMENT FORCE];
```
其中,`tablespace_name` 是你想要创建的表空间的名称,`file_name` 是数据文件的路径和名称,`size` 是表空间的初始大小(可以使用 `K`、`M` 或 `G` 来指定单位)。
你可以根据自己的需求选择是否需要使用其他可选参数,比如自动扩展、日志记录、默认存储参数、分区管理、段空间管理等等。
请注意,创建表空间需要具备适当的权限。
Oracle 12C 创建表空间、用户、目录及授权
好的,下面是创建表空间、用户、目录及授权的详细步骤:
1. 创建表空间
在Oracle 12C中,创建表空间可以使用如下语句:
```sql
CREATE TABLESPACE 表空间名
DATAFILE '数据文件路径'
SIZE 初始大小
AUTOEXTEND ON NEXT 扩展大小
MAXSIZE 最大大小;
```
例如,创建名为test_ts的表空间,数据文件路径为E:\oracle\oradata\XE\test_ts.dbf,初始大小为100M,扩展大小为10M,最大大小为500M,可以使用如下语句:
```sql
CREATE TABLESPACE test_ts
DATAFILE 'E:\oracle\oradata\XE\test_ts.dbf'
SIZE 100M
AUTOEXTEND ON NEXT 10M
MAXSIZE 500M;
```
2. 创建用户
在Oracle 12C中,创建用户可以使用如下语句:
```sql
CREATE USER 用户名
IDENTIFIED BY 密码
DEFAULT TABLESPACE 表空间名
QUOTA 空间限额 ON 表空间名;
```
例如,创建名为test_user的用户,密码为123456,使用test_ts表空间,并给予该用户在test_ts表空间中使用100M的空间限额,可以使用如下语句:
```sql
CREATE USER test_user
IDENTIFIED BY 123456
DEFAULT TABLESPACE test_ts
QUOTA 100M ON test_ts;
```
3. 创建目录
在Oracle 12C中,创建目录可以使用如下语句:
```sql
CREATE DIRECTORY 目录名 AS '目录路径';
```
例如,创建名为test_dir的目录,路径为E:\oracle\test_dir,可以使用如下语句:
```sql
CREATE DIRECTORY test_dir AS 'E:\oracle\test_dir';
```
4. 授权
在Oracle 12C中,授权可以使用如下语句:
```sql
GRANT 权限列表 TO 用户名;
```
例如,给test_user用户授权可以使用test_dir目录下的所有文件,可以使用如下语句:
```sql
GRANT READ, WRITE ON DIRECTORY test_dir TO test_user;
```
以上就是Oracle 12C创建表空间、用户、目录及授权的详细步骤,希望能够对你有所帮助。
阅读全文