预测 SQL 服务器中的数据库大小

Forecasting the DB size in SQL Server

今天接到业务新需求,新项目需要提前预测DB大小

谁知道如何提前预测数据库大小?

我们有将数据从 excel 导入数据库的产品,最大大小是 500 列和 15000 行。

所以,我想创建预测公式来找到例外的数据库大小。例如,如果客户端上传 DATA 500 列和 15000 行,则例外大小将为 =500*1500,但不会给出确切大小。

列数不够,你必须知道数据类型和数据长度。

使用此信息,您可以通过将列所需的最大存储 space 相加来计算最坏情况。例如,NVARCHAR(20) 在存储 20 个字符长的字符串时需要 40 bytes

将其乘以行数(这是根据先前信息做出的有根据的猜测)。

这是你大概的增长。

这是一个例子:

您有这些列:

  • ID INT
  • 姓名NVARCHAR(64)
  • 说明NVARCHAR(256)

您的行大小是每行 4 字节 + 128 字节 + 512 字节 = 644 字节

这是最坏的情况,实际上平均值会更低。

有一些开销,您必须考虑索引、日志文件、备份 space 等,它们确实占用存储空间 space。

既然你已经提到,这将是一个 SQL Server Express 实例,你对数据库大小有一个硬性限制(或多或少的数据和索引大小的总和):

  • Microsoft SQL Server 2008 Express:4GB
  • Microsoft SQL Server 2008 R2 Express:10GB
  • 微软 SQL 服务器 2012:10GB
  • Microsoft SQL Server 2014 Express:10GB

资源: