预测 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
资源:
今天接到业务新需求,新项目需要提前预测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
资源: