【问题标题】:How I can estimate growth of SQL Server database (Azure)?如何估计 SQL Server 数据库 (Azure) 的增长?
【发布时间】:2017-07-13 21:07:36
【问题描述】:

目前我的数据库大小为 24MB,只有 5MB 数据,我正在尝试计算发布后数据库的未来增长。对我来说最明显的方法是从表中取出一个记录大小并将其乘以虚数。搜索后,我找到了几个脚本,但我无法得到正确的结果。

根据这个脚本,我得到了一条大约 2.5KB 的记录的值,看起来很大。

SELECT 
    t.NAME AS TableName,
    s.Name AS SchemaName,
    p.rows AS RowCounts,
    SUM(a.total_pages) * 8 AS TotalSpaceKB, 
    CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB,
    SUM(a.used_pages) * 8 AS UsedSpaceKB, 
    CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB, 
    (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB,
    CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB
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

这个脚本显示了表中每条记录的大小,在我的例子中,它是 77 个字节,看起来更真实,同时完全让我感到困惑。

declare @table varchar(20)
declare @idcol varchar(10)
declare @sql varchar(1000)

set @table = 'Compliants'
set @idcol = 'Id'
set @sql = 'select ' + @idcol +' , (0'

select @sql = @sql + ' + isnull(datalength(' + name + '), 1)' 
    from syscolumns where id = object_id(@table)
set @sql = @sql + ') as rowsize from ' + @table + ' order by rowsize desc'

exec (@sql)

我需要这个计算来确定未来的加速,如果不估计发布后数据库大小将如何增加,这是不可能的。有什么技术可以做到这一点吗?

【问题讨论】:

  • 你可以创建一个测试数据库,用你期望的记录数量填充它,看看这对大小意味着什么。记录数据并不是影响数据库大小的唯一因素。想想可能会增加数据库大小的索引和事务日志之类的东西。
  • 您忘记了物化视图、索引等等。关键是,它会根据需要增长。你真的能准确地估计它的使用频率吗?每天要插入多少数据?这些天存储很便宜。不过有一件事是肯定的。它只能增长到托管数据文件的存储大小!

标签: sql-server database azure


【解决方案1】:

我找到了问题的解决方案!这是一个计算数据库增长的工具@​​987654321@

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多