复制 SQL 服务器数据库的内容以进行负载测试
Duplicate the content of a SQL Server database for a load test
我有以下问题。我有一个总大小为 3 GB 的 SQL 服务器数据库。该数据库的内容用于数据立方体中的分析。我想通过 30 GB 的数据库大小来测试这个数据立方体的性能。做这个的最好方式是什么?多次复制数据库的内容?在这种情况下,外键将是一个真正的问题,因为我想保留元组之间的关系。
提前致谢。
我发现了一个棘手的方法。这是我的方法的草图:
- 关闭需要重复内容的表中的标识
- 关闭所有表的约束检查
- 复制数据库并从现在开始使用副本
- 将相关表中的所有 ID 增加一个高值,例如增加 10.000.000
- 将操作的数据库副本与原始数据库合并
- 制作合并数据库的副本并再次执行步骤 4 并增加另一个较小的值(例如增加 5.000.000)并再次将其与原始数据库合并
- 执行步骤 3 到 5,直到达到所需的数据库大小
- 完成后不要忘记为所有受影响的表打开身份和约束检查
使用所描述的方法,我能够在四次迭代中将数据库中的电影数量从 5 部增加到 60 部,并成功执行了必要的负载测试。
选择增量值时要小心!首先,我使用 10.000.000、5.000.000、2.000.000,最后使用 1.000.000 来避免 ID 交叉。
我有以下问题。我有一个总大小为 3 GB 的 SQL 服务器数据库。该数据库的内容用于数据立方体中的分析。我想通过 30 GB 的数据库大小来测试这个数据立方体的性能。做这个的最好方式是什么?多次复制数据库的内容?在这种情况下,外键将是一个真正的问题,因为我想保留元组之间的关系。
提前致谢。
我发现了一个棘手的方法。这是我的方法的草图:
- 关闭需要重复内容的表中的标识
- 关闭所有表的约束检查
- 复制数据库并从现在开始使用副本
- 将相关表中的所有 ID 增加一个高值,例如增加 10.000.000
- 将操作的数据库副本与原始数据库合并
- 制作合并数据库的副本并再次执行步骤 4 并增加另一个较小的值(例如增加 5.000.000)并再次将其与原始数据库合并
- 执行步骤 3 到 5,直到达到所需的数据库大小
- 完成后不要忘记为所有受影响的表打开身份和约束检查
使用所描述的方法,我能够在四次迭代中将数据库中的电影数量从 5 部增加到 60 部,并成功执行了必要的负载测试。
选择增量值时要小心!首先,我使用 10.000.000、5.000.000、2.000.000,最后使用 1.000.000 来避免 ID 交叉。