开发者社区 问答 正文

技术运维问题-SQL Server使用-RDS For SQL Server 查看所有数据库使用空间的方法


1. 查看空间使用的 SQL


RDS For SQL Server 查看所有数据库使用空间的方法。
使用SQL Server R2 中的 SQL Server Management Studio工具连接到RDS。
新建查询,执行如下sql。 USE master
go
DECLARE @insSize TABLE(dbName sysname,checkTime VARCHAR(19),dbSize VARCHAR(50),logSize VARCHAR(50))
INSERT INTO @insSize ( dbName, checkTime, dbSize, logSize )
EXEC sp_msforeachdb 'select ''?'' dbName,CONVERT(VARCHAR(19),GETDATE(),120) checkTime,LTRIM(STR(SUM(CASE WHEN RIGHT(FILENAME,3)<>''ldf'' THEN convert (dec (15,2),size) * 8 / 1024 ELSE 0 END),15,2)+'' MB'') dbSize,  
                 LTRIM(STR(SUM(CASE WHEN RIGHT(FILENAME,3)=''ldf''  THEN convert (dec (15,2),size) * 8 / 1024 ELSE 0 END),15,2)+'' MB'') logSize from ?.dbo.sysfiles'
SELECT * FROM @insSize ORDER BY CONVERT(DECIMAL,LTRIM(RTRIM(SUBSTRING(dbSize,1,LEN(dbSize)-2)))) DESC






2. 查询结果说明


数据库的大小是 dbSize + logSize 即数据大小与日志大小的总和。

如果问题还未能解决,请联系 售后技术支持

展开
收起
梨好橙 2018-09-29 22:08:46 2548 分享 版权
阿里云 AI 助理回答
  1. 查看空间使用的 SQL

在RDS for SQL Server环境中,要查看所有数据库的使用空间,您可以利用T-SQL脚本通过SQL Server Management Studio (SSMS) 工具执行以下查询:

USE master;
GO
DECLARE @insSize TABLE(
    dbName sysname,
    checkTime VARCHAR(19),
    dbSize VARCHAR(50),
    logSize VARCHAR(50)
);

INSERT INTO @insSize (dbName, checkTime, dbSize, logSize)
EXEC sp_msforeachdb '
    SELECT ''?'' AS dbName,
           CONVERT(VARCHAR(19), GETDATE(), 120) AS checkTime,
           LTRIM(STR(SUM(CASE WHEN RIGHT(FILENAME, 3) <> ''ldf'' THEN convert(dec(15, 2), size) * 8 / 1024 ELSE 0 END), 15, 2) + '' MB'') AS dbSize,
           LTRIM(STR(SUM(CASE WHEN RIGHT(FILENAME, 3) = ''ldf'' THEN convert(dec(15, 2), size) * 8 / 1024 ELSE 0 END), 15, 2) + '' MB'') AS logSize
    FROM ?.dbo.sysfiles';

SELECT * FROM @insSize 
ORDER BY CONVERT(DECIMAL, LTRIM(RTRIM(SUBSTRING(dbSize, 1, LEN(dbSize) - 2)))) DESC;

此脚本首先声明了一个临时表@insSize来存储每个数据库的名称、检查时间、数据大小(dbSize)和日志大小(logSize)。接着,它使用系统存储过程sp_msforeachdb遍历所有数据库,并从sysfiles系统表中汇总每个数据库的数据文件和日志文件大小,最后按数据大小降序排序并展示结果。

  1. 查询结果说明

  2. dbName: 数据库名称。

  3. checkTime: 查询执行的时间。
  4. dbSize: 数据库的数据文件总大小(不包括日志),以MB为单位。
  5. logSize: 数据库的日志文件总大小,以MB为单位。

数据库的总大小可以通过将dbSizelogSize相加得到,这表示了该数据库占用的总磁盘空间,包括数据和日志部分。

如果在执行上述步骤后仍有疑问或问题未解决,请联系售后技术支持获取进一步的帮助。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答