ORACLE查看表占表空间的sql语句
时间: 2023-07-12 17:04:28 浏览: 78
要查看Oracle数据库中表占用的表空间,可以使用以下SQL语句:
```sql
SELECT
segment_name,
segment_type,
owner,
bytes/1024/1024 AS "Size(MB)",
tablespace_name
FROM
dba_segments
WHERE
segment_type = 'TABLE'
AND owner = 'your_owner_name'
AND segment_name = 'your_table_name';
```
请将`your_owner_name`替换为需要查询的表的所有者,`your_table_name`替换为需要查询的表名。执行该查询语句后,将返回该表所占用的表空间、表大小等信息。
相关问题
oracle扩展表空间 sql语句
要扩展Oracle数据库中的表空间,可以使用以下SQL语句:
```sql
ALTER DATABASE DATAFILE '<数据文件的路径和名称>' AUTOEXTEND ON NEXT <扩展大小> MAXSIZE <最大大小>;
```
其中,`<数据文件的路径和名称>` 是要扩展的数据文件的完整路径和名称,`<扩展大小>` 是每次自动扩展的大小,`<最大大小>` 是数据文件的最大大小。
例如,如果要将一个名为`users_datafile.dbf`的数据文件扩展到每次自动增加100M,最大大小为2G,可以使用以下SQL语句:
```sql
ALTER DATABASE DATAFILE '/path/to/users_datafile.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE 2G;
```
请确保在运行此语句之前,你具有足够的权限,并且仔细检查数据文件的路径和名称是否正确。
oracle 查看表空间使用情况的sql
你可以使用以下 SQL 查询 Oracle 数据库中表空间的使用情况:
```sql
SELECT tablespace_name,
ROUND(SUM(bytes) / 1024 / 1024, 2) total_size_mb,
ROUND(SUM(bytes - NVL(free_space, 0)) / 1024 / 1024, 2) used_size_mb,
ROUND(NVL(SUM(free_space), 0) / 1024 / 1024, 2) free_size_mb,
ROUND((SUM(bytes - NVL(free_space, 0)) / SUM(bytes)) * 100, 2) pct_used
FROM (SELECT tablespace_name,
file_id,
SUM(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name, file_id
UNION ALL
SELECT tablespace_name,
file_id,
SUM(bytes) bytes
FROM dba_temp_files
GROUP BY tablespace_name, file_id
UNION ALL
SELECT tablespace_name,
MIN(file_id) file_id,
SUM(bytes) bytes
FROM sys.v_$backup_datafile
GROUP BY tablespace_name)
LEFT OUTER JOIN (SELECT tablespace_name,
file_id,
SUM(bytes) free_space
FROM dba_free_space
GROUP BY tablespace_name, file_id) ON file_id = file_id AND tablespace_name = tablespace_name
GROUP BY tablespace_name
ORDER BY tablespace_name;
```
这个 SQL 查询语句将返回表空间名称、总大小、已使用大小、可用大小以及已使用百分比等信息。