当用每个表的预测值填充时,我必须估计数据库的数据大小。它至少应包含用于数据和索引的大小。是否有可用于SQL Server 2005的数据调整工具?
在SQL Server 2000中,曾经有过类似这样的工具,它在提供每表的记录数量(我认为它随SQL 2000资源工具包一起提供)时产生了估计大小。我无法在2000或2005年找到此工具:(
我知道sp_spacedused,但这不适用于我,因为我必须预先使用值填充数据库,并且我可能有很多方案可以计算。
当用每个表的预测值填充时,我必须估计数据库的数据大小。它至少应包含用于数据和索引的大小。是否有可用于SQL Server 2005的数据调整工具?
在SQL Server 2000中,曾经有过类似这样的工具,它在提供每表的记录数量(我认为它随SQL 2000资源工具包一起提供)时产生了估计大小。我无法在2000或2005年找到此工具:(
我知道sp_spacedused,但这不适用于我,因为我必须预先使用值填充数据库,并且我可能有很多方案可以计算。
在你的鞋子里,我可能只是创建数据库,并尝试用代表性的数据样本填充它,然后检查表的大小是什么样子。
该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)
你有没有使用工具来生成伪数据考虑?
您可以创建一个有足够的数据表,可以生产数据库大小的一个很好的估计(即创建一些有代表性的数据,然后因素它)。
您可能会发现诸如Red Gates SQL Data Generator之类的工具可以使用。
http://www.red-gate.com/products/SQL_Data_Generator/index.htm
干杯,约翰
上次我这样做是Excel中,铅笔,回信封和猜测的工作。答案不是太不准确。我猜你说的是严重的数据量,因为现在磁盘价格非常便宜/可用,除了最大的数据库之外,所有数据库都可以在小型(ish)服务器上运行。
您能否提供有关预计行数和您要存储的数据种类的更多详细信息。顺便说一句,不要在数据库中使用Blob/images/video - 一旦缩放,它就是一件丑陋的事情。