【问题标题】:Is there a data sizer tool available for SQL Server 2005?是否有适用于 SQL Server 2005 的数据筛选器工具?
【发布时间】:2009-02-13 08:26:47
【问题描述】:

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

在 SQL Server 2000 中曾经有这样的工具,当提供每个表的记录数量时,它会产生估计的大小(我认为它是随 SQL 2000 资源工具包提供的)。我在 2000 年或 2005 年都找不到这个工具 :(

我知道 sp_spacedused 但这对我不起作用,因为我必须用值预先填充数据库,而且我可能有很多场景要计算。

【问题讨论】:

    标签: sql-server database database-design sizing


    【解决方案1】:

    在您的情况下,我可能只是创建数据库并尝试用具有代表性的数据样本填充它,然后检查表的大小。

    此 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) 
    

    【讨论】:

      【解决方案2】:

      我上次这样做的时候是 Excel、铅笔、信封背面和有根据的猜测工作。答案并不太准确。我猜你说的是严重的数据量,因为现在磁盘非常便宜/可用,除了最大的数据库之外,所有的数据库都可以在小型(ish)服务器上运行。

      您能否提供更多有关预期行数和您将存储的数据类型的详细信息。顺便说一句,不要使用数据库中的 Blob/图像/视频 - 一旦扩展,它就是一件丑陋的事情。

      【讨论】:

        【解决方案3】:

        您是否考虑过使用工具来生成虚拟数据?

        您可以创建包含足够数据的表,以提供对生产数据库大小的良好估计(即创建一些代表性数据,然后将其分解)。

        您可能会发现 Red Gates SQL 数据生成器等工具很有用。

        http://www.red-gate.com/products/SQL_Data_Generator/index.htm

        干杯,约翰

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-23
          • 1970-01-01
          • 2020-07-22
          • 1970-01-01
          • 2018-03-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多