复制 SQL 服务器数据库的内容以进行负载测试

Duplicate the content of a SQL Server database for a load test

我有以下问题。我有一个总大小为 3 GB 的 SQL 服务器数据库。该数据库的内容用于数据立方体中的分析。我想通过 30 GB 的数据库大小来测试这个数据立方体的性能。做这个的最好方式是什么?多次复制数据库的内容?在这种情况下,外键将是一个真正的问题,因为我想保留元组之间的关系。

提前致谢。

我发现了一个棘手的方法。这是我的方法的草图:

  1. 关闭需要重复内容的表中的标识
  2. 关闭所有表的约束检查
  3. 复制数据库并从现在开始使用副本
  4. 将相关表中的所有 ID 增加一个高值,例如增加 10.000.000
  5. 将操作的​​数据库副本与原始数据库合并
  6. 制作合并数据库的副本并再次执行步骤 4 并增加另一个较小的值(例如增加 5.000.000)并再次将其与原始数据库合并
  7. 执行步骤 3 到 5,直到达到所需的数据库大小
  8. 完成后不要忘记为所有受影响的表打开身份和约束检查

使用所描述的方法,我能够在四次迭代中将数据库中的电影数量从 5 部增加到 60 部,并成功执行了必要的负载测试。

选择增量值时要小心!首先,我使用 10.000.000、5.000.000、2.000.000,最后使用 1.000.000 来避免 ID 交叉。