测试迁移

已完成

假设你是一家律所的数据库管理员,你已经升级了公司中的一些数据库。 你现在需要确保一切正常工作,然后再重新配置应用程序以使用新的数据库。 请务必查找并修复中断的查询并替换弃用的功能。 还需要确保数据库性能等于或优于现有版本。

你需要一个工具来自动执行此过程。 在用户需要继续工作之前,不可能彻底测试多个应用程序。

迁移后的任务

在应用程序开始使用新的目标数据库之前,必须查找并修复任何兼容性问题。 如果对公司关键数据库执行大规模升级操作,则兼容性问题至关重要,因为你希望尽可能缩短停机时间。 此外,你还需要保持当前性能级别,或在可能的情况下进行改进。

人们可能很自然地认为将数据库移到新硬件和最新版本的 SQL Server 将会提高性能。 这种假设可能会发现 DBA 出错,因为新功能的重新设计方式可能会降低旧数据库的性能。 你的存储过程在新服务器上可能不是最佳的。 事先对其进行测试可帮助你避免在更改生效、且用户经历查询速度缓慢这样的后果之后才发现问题。

使用数据库实验助手进行优化

使用数据库实验助手 (DEA) 可以自动执行测试目标服务器上当前数据库工作负载的过程。 它适用于 A/B 测试,可以测试数据库在 SQL Server 的升级版本上的性能。 你还可以在不同的硬件上或使用添加的新功能测试性能。 A/B 测试的关键点是执行一项更改:此方法提供了测试单个变体的基线。

Screenshot of the Database Experimentation Assistant with the welcome screen displayed.

实际上,服务器可能会让开发人员和 DBA 不断地进行更改。 当查询变慢时,可能很难确定导致性能下降的更改。 在升级的版本上测试数据库时,可以使用 DEA 创建新数据库,并在升级后的数据库上重播当前工作负载的示例。

DEA 比较具有以下特征的源数据库和目标数据库:除升级后的数据库之外完全相同。 在源生产服务器上运行跟踪,以捕获构成典型工作负载的查询。 运行跟踪对服务器的影响最小,因此即使在有大量需求的情况下也可以运行跟踪。 DEA 工具可查找降级的查询并生成钻取报表,以突出显示在目标环境中运行较慢的代码。 然后,你可以在将生产系统切换到目标数据库之前优化代码。

如何运行实际测试

对于你的律所,你最初遇到的情况很复杂:多个数据库分布在运行多个 SQL Server 版本的服务器上。

在执行任何升级之前,请确保使用 DEA 分析原始系统的性能。 然后,可以在升级完成后比较性能。 此分析将确保更改不会对性能产生负面影响。

DEA 工具通过在升级数据库后自动执行大部分测试过程来减少管理时间并消除人为错误。 通过生成突出显示查询错误、查询计划信息和统计信息的分析报表,可以快速修复和优化查询,使应用程序再次运行。 DEA 是为 A/B 测试设计的,因此你可以测试对数据库的单个更改的影响。 在进行升级之前,DEA 是优化数据库的理想选择。