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

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

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

select

t.tablespace_name,

round(sum(bytes/(1024*1024)),0)

ts_size

from

dba_tablespaces

t,

dba_data_files

d

where

t.tablespace_name

=

d.tablespace_name

group

by

t.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

b.file_id

文件ID号,

b.tablespace_name

表空间名,

b.bytes/1024/1024||'M'字节数,

(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||'M'

已使用,

sum(nvl(a.bytes,0))/1024/1024||'M'

剩余空间,

round(100

-

sum(nvl(a.bytes,0))/(b.bytes)*100,2)||

'%'

占用百分比

from

dba_free_space

a,dba_data_files

b

where

a.file_id=b.file_id

group

by

b.tablespace_name,b.file_id,b.bytes

order

by

b.file_id

总有一款适合你!

查询各个磁盘分区的剩余空间:

Exec master.dbo.xp_fixeddrives

查询当前数据库的磁盘使用情况

Exec sp_spaceused

1.

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

在MySQL

Workbench中运行以下SQL语句:

以GB为单位

SELECT

CONCAT(ROUND(SUM(index_length)/(1024*1024*1024),

6),

GB’)

AS

‘Total

Index

Size’

FROM

information_schema.TABLES

WHERE

table_schema

LIKE

‘database’

以MB为单位

SELECT

CONCAT(ROUND(SUM(index_length)/(1024*1024),

6),

MB’)

AS

‘Total

Index

Size’

FROM

information_schema.TABLES

WHERE

table_schema

LIKE

‘database’

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

2.

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

在MySQL

Workbench中运行以下SQL语句:

以GB为单位

SELECT

CONCAT(ROUND(SUM(data_length)/(1024*1024*1024),

6),

GB’)

AS

‘Total

Data

Size’

FROM

information_schema.TABLES

WHERE

table_schema

LIKE

‘database’

以MB为单位

SELECT

CONCAT(ROUND(SUM(data_length)/(1024*1024),

6),

MB’)

AS

‘Total

Data

Size’

FROM

information_schema.TABLES

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/(1024*1024),6),’

MB’)

AS

‘Data

Size’,

CONCAT(ROUND(index_length/(1024*1024),6),’

MB’)

AS

‘Index

Size’,

CONCAT(ROUND((data_length+index_length)/(1024*1024),6),’

MB’)

AS’Total

Size’

FROM

information_schema.TABLES

WHERE

table_schema

LIKE

‘database’

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


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/56656.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存