有被称为Lectoneth或类似的东西,这个老的SQL Server工具,你就会把SQL查询它,它会重写它。

我想追求他们买下了,但我找不到在哪里下载该软件的免费副本。

真正帮助时,你有没有DBA,并有大量的SQL查询的重写。

由于

克雷格

其他提示

好,而不是花时间寻找一个神奇的子弹,为什么不花一些时间学习性能调优(你将需要一本书,这是互联网太复杂一般)。再加上它是我的信念,如果你想OT写体面的新代码,您需要了解数据库的性能。没有理由为不能说avvoids最常见的问题写入代码。

首先,重写每个查询使用ANSII语法任何时候你打开它,修改它的任何其他原因。代码审查所有的SQL变化和不通过代码审查,除非明确连接使用。

在性能优化的第一步,以确定哪些查询和特效是造成麻烦。您可以使用的工具,会告诉你的总时间方面表现最差的查询,但不要忘记调整被frequnetly运行以及查询。切割秒掉运行数千次,每天可以真正加快速度查询。此外,由于你是在oprod已经,可能你的用户抱怨某些领域,这些领域应该看着第一。

观光寻找那些导致性能问题:

光标

相关子查询

浏览该呼叫的观点

缺乏正确的索引的

的功能(尤其是标量函数,使由insted的的行查询运行排通过一组)

Where子句不在sargeable

EAV表

不是你需要返回更多的数据(如果你有选择*任何东西和加入,立即解决这个问题。)

重用SPS其作用于一个记录循环throuhg一大群记录

这奥姆斯设计糟糕的自动生成的复杂的查询

,导致需要不正确的数据类型,以被连续地以使用它的数据转换。

既然你有老式的语法很可能你有很多意外的交叉的加入

的不同使用时,它可以与派生表替换代替

联合使用时,联盟所有会工作

为表的设计,需要能够从未表现良好的查询难以施工。如果你发现自己经常参加同一个表多次得到你需要的数据,再看看表的设计。

此外,由于您使用隐式连接,你需要知道,即使在SQL Server 2000中的左,右隐性语法不正确工作。有时候,这解释为一个交叉连接,而不是左连接或右连接。我想使它成为一个优先找到并立即修复所有这些疑问的,因为他们目前可能返回的结果集不正确。坏数据的结果是更糟糕的是缓慢的数据返回。

好运。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top