如何使用SQL语句查询数据库及表的空间容量

如何使用SQL语句查询数据库及表的空间容量,第1张

--1、查看表空间的名称及大小

select

ttablespace_name,

round(sum(bytes/(10241024)),0)

ts_size

from

dba_tablespaces

t,

dba_data_files

d

where

ttablespace_name

=

dtablespace_name

group

by

ttablespace_name;

--2、查看表空间物理文件的名称及大小

select

tablespace_name,

file_id,

file_name,

round(bytes/(10241024),0)

total_space

from

dba_data_files

order

by

tablespace_name;

3查看所有表空间使用情况

select

bfile_id

文件ID号,

btablespace_name

表空间名,

bbytes/1024/1024||'M'字节数,

(bbytes-sum(nvl(abytes,0)))/1024/1024||'M'

已使用,

sum(nvl(abytes,0))/1024/1024||'M'

剩余空间,

round(100

-

sum(nvl(abytes,0))/(bbytes)100,2)||

'%'

占用百分比

from

dba_free_space

a,dba_data_files

b

where

afile_id=bfile_id

group

by

btablespace_name,bfile_id,bbytes

order

by

bfile_id;

总有一款适合你!

1 查看数据库的索引空间大小

在MySQL Workbench中运行以下SQL语句:

— 以GB为单位

SELECT

CONCAT(ROUND(SUM(index_length)/(102410241024), 6), ‘ GB’) AS ‘Total Index Size’

FROM

information_schemaTABLES

WHERE

table_schema LIKE ‘database’;

— 以MB为单位

SELECT

CONCAT(ROUND(SUM(index_length)/(10241024), 6), ‘ MB’) AS ‘Total Index Size’

FROM

information_schemaTABLES

WHERE

table_schema LIKE ‘database’;

其中,database是待查看数据库的名称,例如:lsqdb%。运行结果如下图所示:

2 查看数据库的数据空间大小

在MySQL Workbench中运行以下SQL语句:

— 以GB为单位

SELECT

CONCAT(ROUND(SUM(data_length)/(102410241024), 6), ‘ GB’) AS ‘Total Data Size’

FROM

information_schemaTABLES

WHERE

table_schema LIKE ‘database’;

— 以MB为单位

SELECT

CONCAT(ROUND(SUM(data_length)/(10241024), 6), ‘ MB’) AS ‘Total Data Size’

FROM

information_schemaTABLES

WHERE

table_schema LIKE ‘database’;

其中,database是待查看数据库的名称,例如:lsqdb%。运行结果如下图所示:

3 查看数据库中所有表的信息

在MySQL Workbench中运行以下SQL语句,查看数据库中所有表的表名、表行数、数据空间大小、索引空间大小和总大小:

SELECT

CONCAT(table_schema,’’,table_name) AS ‘Table Name’,

table_rows AS ‘Number of Rows’,

CONCAT(ROUND(data_length/(10241024),6),’ MB’) AS ‘Data Size’,

CONCAT(ROUND(index_length/(10241024),6),’ MB’) AS ‘Index Size’,

CONCAT(ROUND((data_length+index_length)/(10241024),6),’ MB’) AS’Total Size’

FROM

information_schemaTABLES

WHERE

table_schema LIKE ‘database’;

其中,database是待查看数据库的名称,例如:lsqdb%。

select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;

select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile;--sys用户查看

2、缩小临时表空间大小

alter database tempfile 'D:\ORACLE\PRODUCT\1020\ORADATA\TELEMT\TEMP01DBF' resize 100M;

3、扩展临时表空间:

方法一、增大临时文件大小:

SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01dbf’ resize 100m;

方法二、将临时数据文件设为自动扩展:

SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01dbf’ autoextend on next 5m maxsize unlimited;

方法三、向临时表空间中添加数据文件:

SQL> alter tablespace temp add tempfile ‘/u01/app/oracle/oradata/orcl/temp02dbf’ size 100m;

4、创建临时表空间:

SQL> create temporary tablespace temp1 tempfile ‘/u01/app/oracle/oradata/orcl/temp11dbf’ size 10M;

5、更改系统的默认临时表空间:

--查询默认临时表空间

select from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';

--修改默认临时表空间

alter database default temporary tablespace temp1;

所有用户的默认临时表空间都将切换为新的临时表空间:

select username,temporary_tablespace,default_ from dba_users;

--更改某一用户的临时表空间:

alter user scott temporary tablespace temp;

6、删除临时表空间

删除临时表空间的一个数据文件:

SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp02dbf’ drop;

删除临时表空间(彻底删除):

SQL> drop tablespace temp1 including contents and datafiles cascade constraints;

7、查看临时表空间的使用情况(GV_$TEMP_SPACE_HEADER视图必须在sys用户下才能查询)

GV_$TEMP_SPACE_HEADER视图记录了临时表空间的使用大小与未使用的大小

dba_temp_files视图的bytes字段记录的是临时表空间的总大小

SELECT temp_usedtablespace_name,

total - used as "Free",

total as "Total",

round(nvl(total - used, 0) 100 / total, 3) "Free percent"

FROM (SELECT tablespace_name, SUM(bytes_used) / 1024 / 1024 used

FROM GV_$TEMP_SPACE_HEADER

GROUP BY tablespace_name) temp_used,

(SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total

FROM dba_temp_files

GROUP BY tablespace_name) temp_total

WHERE temp_usedtablespace_name = temp_totaltablespace_name

ORDER BY BTABLESPACE, BSEGFILE#, BSEGBLK#, BBLOCKS;

以上就是关于如何使用SQL语句查询数据库及表的空间容量全部的内容,包括:如何使用SQL语句查询数据库及表的空间容量、怎么通过SQL语句查看MySQL数据库的表空间状态、如何查看数据库的默认表空间,与临时表空间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9833832.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存