即时查询/命令修改

Kag*_*nar 7 sql-server optimization configuration

我负责管理 SQL Server 200x 的一个实例,它不幸充当了一个用令人讨厌的性能问题编写的交钥匙应用程序的后端。它重复使用准备静态游标的模式,它只使用前几个条目,通常需要几十毫秒。在一个连续的流中有成千上万个这样的查询。

事情的真相是,由于应用程序数据完整性的奇怪设计,这些查询中的任何一个都根本不是问题,因此它们是静态的这一事实是悲惨的,因为如果它们是静态的,性能将提高大约 30 倍动态的。

在与供应商打交道数周后,我一无所获。事实上,我真正需要做的就是更改应用程序使用 sp_cursorprepexec 的方式中的一个参数。如有必要,我什至可以在整个服务器上以全局方式执行此操作。

我正在研究任何和所有解决方案,无论是使用 SQL Server 200x 中我无法找到的功能,编写一个位于 SQL Server 和客户端之间并修改数据的小应用程序(尽管我不会期待弄清楚如何以这种方式处理 TDS 协议),或者以某种方式重命名 sp_cursorprepexec 并用包装器替换它。

天空是极限。

(仅供参考,我们现在正在运行 SQL Server 2005,但如果有令人信服的理由支付额外的钱来升级许可证,它可能会发生。)

Con*_*lls 8

这不是技术问题,而是合同管理问题。不要使用交钥匙应用程序。它为供应商提供了一张越狱卡,允许他们忽略他们的服务水平协议。

任何一个,

  1. 把硬件放在问题上(SSD、更大的服务器、更多的 RAM 等),或者

  2. 与管理与供应商关系的人交谈。将系统性能的责任推回到供应商身上,和/或

  3. 调查转向竞争对手产品的商业案例。

弄乱应用程序是您应该做的最后一件事,尤其是在与供应商的关系变得紧张的情况下。

您需要确保您的管理层知道性能问题归结于系统架构。以某种方式把它写下来;写一份报告,描述问题以及你不能单方面解决它的原因。确保它已通过电子邮件发送给您的所有内部利益相关者,并且您有发送记录。安排一次会议来跟进并解释它。这涵盖了你的屁股 - 如果供应商(或授权购买的一方)试图政治化,这一点非常重要。

现在,通过您的 IT 管理职能将问题上报,确保它有据可查。当您了解问题的根本原因时,这应该不是问题。供应商向您出售了不适合用途的系统。现在是管理问题。点燃蓝色触摸纸并退后。

如果您已经这样做了,那么您已经完成了所有可以做的事情,而不会干扰应用程序本身。同样,我不能说得足够强烈:不要对应用程序做任何可能使 SLA 失效的事情。