- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的要求是计算我的 SQL Server 数据库中的表大小。
为此,我使用预定义的 SP,sp_spaceused
。但是,如果我的表中有 BLOB 类型的列(如 varbinary(max)
或 FILESTREAM varbinary(max)
),那么大小是如何计算的?
案例 1:如果表有 varbinary(max)
列,大小是否包含二进制数据?
案例 2:如果表包含 FILESTREAM varbinary(max)
类型的列,那么大小是否包括二进制数据?出现这种情况是因为二进制数据存储在 Windows 文件系统中。
你能帮我解决这个问题吗?
最佳答案
我认为在 dba stackexchange 中可以更好地回答您的问题.但是,我使用以下 SQL 命令来获取表大小:
SELECT
t.NAME AS TableName,
s.Name AS SchemaName,
p.rows AS RowCounts,
SUM(a.total_pages) * 8 AS TotalSpaceKB,
SUM(a.used_pages) * 8 AS UsedSpaceKB,
(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB
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 t.Name
它适用于CASE 1,但是,我不确定第二种情况。
关于sql - sp_spaceused 如何计算具有 BLOB/溢出/行外类型的表的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48145932/
我想收集所有包含数据库大小和未分配大小的数据库统计信息。我正在尝试使用 sp_spaceused 存储过程,但遗憾的是我无法将结果(此过程为每个数据库获取两个结果集)写入临时表。 我的想法是修改这个程
我有一个要求要抓取 300 万份文件。它们都是 text 和 varchar 字段。例如,我刚刚抓取了 250 个文档,当我运行 EXEC sp_spaceused 时,它给了我 26.6 MB 的数
我的要求是计算我的 SQL Server 数据库中的表大小。 为此,我使用预定义的 SP,sp_spaceused。但是,如果我的表中有 BLOB 类型的列(如 varbinary(max) 或 FI
当我使用 SP_SpaceUsed N'' 时,我有一个单行表,它为我提供了 16 KB 的数据 当我使用 dataLength 时,如下所示:- select ClientID , (0 + isn
继How to measure table size in GB in a table in SQL中的讨论之后,我正在寻找一种解决方案来使用存储过程 sp_spaceused 单独测量 SQL Se
我是一名优秀的程序员,十分优秀!