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

Performance 以数据库为中心的应用程序加速方法,performance,sql-server-2008,Performance,Sql Server 2008,我们有一个应用程序,在我的MSSQL服务器中有65 GB的数据。 大约有250个表和1000个存储过程和函数 现在,该应用程序是完全特定于数据库的,几乎所有的逻辑都在过程和函数中编码。一些存储的过程需要4-5分钟才能执行。现在,我们的任务是优化/重新设计这些运行缓慢的存储过程 我们没有太多关于项目/模式/设计的信息,但我们可以访问模式和数据,幸运的是,我们只需要处理一个模块来优化它,这很慢。(但这涉及许多SP和运行超过1000行的函数..包括应用程序逻辑..) 我的问题是如何开始这样一个项目。我

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

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

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

我的问题是如何开始这样一个项目。我们已经设定了一些不切实际的期限,在2-3天内完成修复,我已经花了一天的时间来设置

应采取什么方法:

  • 建议增加硬件基础设施
  • 重新设计应用程序(将一些计算推到应用程序端)使其不那么以数据库为中心
  • 要求更多的时间(多少)来优化这个?有趣的是,我们不是最初的编码者,对应用程序的概念也不太清楚,即SPs和函数中编码了什么

  • 谢谢

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

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

    至于你的三个选择,我认为你必须选择(3),因为你已经声明你对应用程序没有透彻的了解,所以你需要获得更多的曝光,以确定你的工作重点。我不认为(1)是一个长期的解决方案,尽管它显然会提供一些好处(多少决定了当前和建议的规范)。只有当你有机会首先确定问题区域时,你才会知道(2)是否是一个有效的选项

    祝你好运