是否有适用于SQL Server 2005的数据大小调整工具?

Phi*_*rie 5 database sql-server database-design sizing

当填充每个表的预测值时,我必须估计数据库的数据大小.它应该至少包括用于数据和索引的大小.

以前在SQL Server 2000中有这样的工具,当提供每个表的记录数量时产生估计的大小(我认为它随SQL 2000资源工具包一起提供).我找不到2000或2005的这个工具:(

我知道sp_spacedused,但这对我不起作用,因为我必须使用值预先填充数据库,并且我可能有许多方案需要计算.

mar*_*c_s 2

站在你的立场上,我可能只是创建数据库并尝试用具有代表性的数据样本填充它,然后检查表的大小。

这个 SQL 脚本对所有表执行此操作 - 您不必对每个表调用 sp_spaceused:

SELECT 
    t.NAME AS TableName,
    i.name as indexName,
    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) 
Run Code Online (Sandbox Code Playgroud)