加速以数据库为中心的应用程序的方法

时间:2012-12-18 12:39:06

标签: performance sql-server-2008

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

现在,应用程序完全是DB特定的,几乎所有逻辑都在过程和函数中编码。一些存储过程需要花费超过4-5分钟才能执行。现在我们已经完成了优化/重新设计这些慢速运行的存储过程的任务。

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

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

方法应该是什么:

  1. 建议增加硬件基础设施。
  2. 重新设计应用程序(将一些计算推送到应用程序端)使其更少以数据库为中心?
  3. 要求更多时间(多少)优化这个?有趣的是,我们不是最初的编码员,对应用程序的想法很少,即在SP和函数中编码的是什么。
  4. 由于

1 个答案:

答案 0 :(得分:0)

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

你说你刚开始看一个模块,然后我建议使用SQL Profiler之类的东西来确定执行语句的频率,以及执行和使用这些数据作为起点的时间看看逻辑是否可以优化。 查找使用游标的任何操作,这些游标可能会受益于更基于集合的方法。

至于你的三个选项,我会说你必须去(3),因为你已经声明你没有对该应用程序有透彻的了解,所以你需要获得一些进一步的曝光顺序确定在哪里集中精力。我不认为(1)是一个长期解决方案,虽然它显然会提供一些好处(多少决定当前和建议的规格)。只有在您有机会首先建立问题区域时,您才会知道(2)是否是有效选项。

祝你好运。