添加 '数据库/oracle/查询具体表占用的空间.md'
This commit is contained in:
parent
7e69b3c5eb
commit
3be0580f8c
1 changed files with 85 additions and 0 deletions
85
数据库/oracle/查询具体表占用的空间.md
Normal file
85
数据库/oracle/查询具体表占用的空间.md
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
## 当前用户表占用空间
|
||||||
|
```sql
|
||||||
|
select SEGMENT_NAME as TABLE_NAME,BYTES/1024/1024 as 大小MB
|
||||||
|
from USER_SEGMENTS
|
||||||
|
where SEGMENT_TYPE='TABLE'
|
||||||
|
order by BYTES desc;
|
||||||
|
```
|
||||||
|
## 所有用户表占用空间
|
||||||
|
```sql
|
||||||
|
select OWNER,SEGMENT_NAME as TABLE_NAME,BYTES/1024/1024 as 大小MB
|
||||||
|
from DBA_SEGMENTS
|
||||||
|
where SEGMENT_TYPE='TABLE'
|
||||||
|
order by OWNER,BYTES desc;
|
||||||
|
```
|
||||||
|
## 查询表空间及表空间所占空间大小
|
||||||
|
```sql
|
||||||
|
SELECT
|
||||||
|
tablespace_name,
|
||||||
|
sum( bytes ) / 1024 / 1024
|
||||||
|
FROM
|
||||||
|
dba_data_files
|
||||||
|
GROUP BY
|
||||||
|
tablespace_name;
|
||||||
|
```
|
||||||
|
## 查询表空间物理文件的名称及大小
|
||||||
|
```sql
|
||||||
|
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;
|
||||||
|
```
|
||||||
|
## 查询所有表空间以及每个表空间的大小,已用空间,剩余空间,使用率和空闲率
|
||||||
|
```sql
|
||||||
|
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;
|
||||||
|
```
|
||||||
|
## 查询某个具体的表所占空间的大小
|
||||||
|
```sql
|
||||||
|
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;
|
||||||
|
```
|
||||||
|
## 查看每个表所占空间大小
|
||||||
|
```sql
|
||||||
|
select * from (
|
||||||
|
select t.tablespace_name,t.owner, t.segment_name, t.segment_type, sum(t.bytes / 1024 / 1024) mb
|
||||||
|
from dba_segments t
|
||||||
|
where t.segment_type='TABLE'
|
||||||
|
group by t.tablespace_name,t.OWNER, t.segment_name, t.segment_type
|
||||||
|
) t
|
||||||
|
order by t.mb desc
|
||||||
|
;
|
||||||
|
```
|
Loading…
Add table
Add a link
Reference in a new issue