gpt4 book ai didi

sql-server - 如何判断 SQL Server 2005 数据库中哪些表占用了最多的空间?

转载 作者:行者123 更新时间:2023-12-01 17:04:27 29 4
gpt4 key购买 nike

如何判断哪些表占用了 SQL Server 2005 数据库中最多的空间?

我确信有一些系统存储过程可以显示此信息。

我有一个 TEST 数据库,从 1tb 增长到 23tb。我们目前正在数据库中进行大量客户端转换测试,这需要多次运行相同的转换存储过程。它确实删除了我确信会增加事务日志的内容。但这让我想问这个问题。

信息

最大的问题是 dbo.Download 表,它创建了实际上不需要的大量存储,在截断它之前我有 3GB,然后是 52MB ;)

最佳答案

尝试这个脚本 - 它将列出数据库中所有表的行数和数据行使用的空间(以及使用的总空间):

SELECT 
t.NAME AS TableName,
i.name AS indexName,
SUM(p.rows) AS RowCounts,
SUM(a.total_pages) AS TotalPages,
SUM(a.used_pages) AS UsedPages,
SUM(a.data_pages) AS DataPages,
(SUM(a.total_pages) * 8) / 1024 AS TotalSpaceMB,
(SUM(a.used_pages) * 8) / 1024 AS UsedSpaceMB,
(SUM(a.data_pages) * 8) / 1024 AS DataSpaceMB
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 AND
i.index_id <= 1
GROUP BY
t.NAME, i.object_id, i.index_id, i.name
ORDER BY
OBJECT_NAME(i.object_id)

关于sql-server - 如何判断 SQL Server 2005 数据库中哪些表占用了最多的空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3927231/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com