0

我们有一个应用程序,其中我在 MSSQL Server 中有 65 GB 的数据。大约有 250 个表和 1000 个存储过程和函数。

现在,该应用程序是完整的数据库特定的,几乎所有的逻辑都编码在过程和函数中。一些存储的 procs 需要超过 4-5 分钟才能执行。现在我们的任务是优化/重新设计这些运行缓慢的存储过程。

我们没有太多关于项目/模式/设计的信息,但我们可以访问模式和数据,幸运的是我们只需要处理一个模块来优化,这很慢。(但这涉及许多 SP 和运行超过 1000 行的函数......包含应用程序逻辑......)

我的问题是如何开始这样的项目。我们已经设定了一些不切实际的最后期限,即在 2-3 天内提出修复,而我已经花了一天的时间进行设置!

应该是什么方法:

  1. 建议增加硬件基础设施。
  2. 重新设计应用程序(将一些计算推到应用程序端)使其不以数据库为中心?
  3. 要求更多时间(多少)来优化这个?有趣的是我们不是最初的编码人员,对应用程序的了解非常少,即 SP 和功能中编码的内容。

谢谢

4

1 回答 1

0

在尝试任何修复之前,您需要了解问题区域。

您说您只是从一个模块开始,那么我建议使用 SQL Profiler 之类的东西来确定执行语句的频率以及执行所需的时间,并使用这些数据作为起点来查看逻辑可以优化。寻找任何使用游标的操作,这些操作可能会从基于集合的方法中受益。

至于您的三个选项,我会说您必须选择(3),因为您已表示您对应用程序没有透彻的了解,因此您需要进一步了解才能确定在哪里集中精力。我不认为(1)是一个长期的解决方案,尽管它显然会提供一些好处(多少决定了当前和提议的规格)。一旦您有机会首先确定问题区域,您只会知道 (2) 是否是一个有效选项。

祝你好运。

于 2012-12-18T13:36:53.730 回答