代码之家  ›  专栏  ›  技术社区  ›  user4920607

预测SQL Server中的数据库大小

  •  1
  • user4920607  · 技术社区  · 9 年前

    今天,我从业务部门得到了一个新的要求,即为新项目提前预测DB大小。

    有人知道我如何提前预测DB大小吗?

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

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

    1 回复  |  直到 9 年前
        1
  •  4
  •   Pred    9 年前

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

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

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

    这是您的近似增长。

    下面是一个例子:

    您有以下列:

    • 身份证件 INT
    • 名称 NVARCHAR(64)
    • 描述 NVARCHAR(256)

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

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

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

    因为您已经提到,这将是一个SQL Server Express实例,所以您对数据库大小有一个硬限制(数据和索引大小的总和):

    • Microsoft SQL Server 2008 Express: 4GB
    • Microsoft SQL Server 2008 R2 Express: 10GB
    • Microsoft SQL Server 2012: 10GB
    • Microsoft SQL Server 2014 Express: 10GB

    资源: