目录
(一)前言
(二)正文
1. 环境:
2. 查看实例下每个数据库的空间大小
(1) SQL语法
(2)运行结果
3. 查看特定数据库下每张表的大小
(1)SQL语法
(2)运行结果
(一)前言
日常工作中对于各个数据库以及每一个数据库中下辖的表的大小,是我们日常监控以及分析问题的重要方向和依据。本文我将用一些例子,简单的介绍下如何查库和表的大小。
(二)正文
1. 环境:
本文采用的是Azure SQL托管实例环境,在一个实例上面下辖多个云上数据库。
2. 查看实例下每个数据库的空间大小
(1) SQL语法
SELECT DB_NAME(database_id) AS [Database Name],
[Name] AS [Logical Name],
[Physical_Name] AS [Physical Name],
((size * 8) / 1024) AS [Size(MB)],
[differential_base_time] AS [Differential Base Time]
FROM sys.master_files
order by 4 desc
文章来源地址https://www.toymoban.com/news/detail-501991.html
(2)运行结果
重点关注Database Name/Logical Name/Size:
3. 查看特定数据库下每张表的大小
先切换到需要查看的数据库:
(1)SQL语法
SELECT
t.NAME AS TableName,
s.Name AS SchemaName,
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
LEFT OUTER JOIN
sys.schemas s ON t.schema_id = s.schema_id
WHERE
t.NAME NOT LIKE 'dt%'
AND t.is_ms_shipped = 0
AND i.OBJECT_ID > 255
GROUP BY
t.Name, s.Name, p.Rows
ORDER BY
UsedSpaceMB desc,
t.Name
(2)运行结果
结果包含每张表的行数统计,使用以及未使用空间大小统计等我们重点关注的方向。
文章来源:https://www.toymoban.com/news/detail-501991.html
到了这里,关于在Azure SQL DB/Azure托管实例里快速查询各数据库大小以及每个数据库下表的大小的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!