「MSSQL查询表大小:简明指南」

1. 前言

对于数据库管理员来说,管理数据库中的表格是一项基本技能。一个数据库中的数据表可以逻辑上或者实际上被分为不同的组别,同时每个表的大小也是非常重要的,因为这直接影响到服务器的性能,尤其在表过于庞大时就会对服务器性能造成很大的负担。在这篇文章中,我们将提供 MS SQL 服务器下查询 MSSQL 表大小的指南。

2. 如何查询单个 MSQL 数据表的大小

2.1 应用 SQL Server Management Studio

我们可以使用 SQL Server Management Studio(SSMS)来查看单个表的大小。请运行以下查询:

USE database_name

GO

EXEC sp_spaceused 'schema.tablename'

GO

在这里,我们要将“database_name”替换为我们正在查询数据库的名称,用“schema.tablename”替换为我们正在查看的表名称。这将返回表大小信息,如下图所示:

2.2 应用查询语句

我们还可以使用以下查询来获取表的大小:

USE database_name

GO

SELECT t.NAME AS TableName, p.rows AS RowCounts, SUM(a.total_pages) * 8 AS TotalSpaceKB, CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB, SUM(a.used_pages) * 8 AS UsedSpaceKB, CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB, (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB, CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB

FROM sys.tables t

INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id

INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id

INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id

WHERE t.NAME NOT LIKE 'dt%'

AND i.OBJECT_ID > 255

GROUP BY t.NAME, p.Rows

ORDER BY t.Name

GO

其中,“database_name”也需要替换为正要查询的数据库的名称。这应返回列出 database_name 中每个表的名称、行数、总大小、已用大小和未用大小信息,如下图所示:

3. 如何查询整个数据库的大小

3.1 使用 SQL Server Management Studio

我们可以使用 SQL Server Management Studio 的“属性”窗口来查看整个数据库的大小。右键单击数据库,选择“属性”,然后转到“文件”选项卡。

3.2 使用查询语句

我们可以使用以下查询来确定整个数据库的大小:

USE database_name

GO

EXEC sp_spaceused

GO

其中,“database_name”也应替换为正在查询的数据库的名称。这将返回数据库中每个对象的大小统计信息,以及整个数据库的大小和未使用的空间,如下图所示:

4. 总结

查看 MSSQL 数据表大小是了解您的数据库的重要组成部分。在本文中,我们提供了两个方法来查看单个 MSQL 表大小和整个数据库的大小。我们希望这些指南可以帮助您更好地管理 MSSQL 数据库。

数据库标签