维护某人的存储过程

Maintaining Someones Stored Procedures

我有这个问题 - 一位开发人员编写了非常复杂的存储过程并且 he/she 离开了组织。现在您正在参与并使相同的存储过程运行得非常快,或者像以前一样工作以获得相同的结果。我们需要遵循哪些步骤。换句话说,这就像处理某人即将完成的工作。

首先看一下存储过程的执行计划。确保您了解 SQL 服务器优化引擎为什么选择这些计划而不是另一个执行计划,它使用了哪个索引以及为什么,统计是如何工作的,...

然后,让它变得更好。

这些是您需要遵循的步骤。

  1. 了解正在做什么
  2. 让它变得更好
  3. 重复。

众所周知,存储过程很难维护。我将从编写 unit tests 开始——这可能涉及设置一个专用的测试环境,其中包含“已知良好”的数据。找出过程中的主要逻辑分支,并编写单元测试来涵盖这些情况。这应该会让您更加熟悉代码。

完成单元测试后,您就可以进行优化(如果我理解您的问题,那么您正在尝试提高性能)。如果您的性能优化涉及更改过程,单元测试会告诉您是否更改了代码的行为。

确保单元测试保持最新,这样当您离开时,下一个人就不会面临同样的挑战!