几天前我写了一个查询,它很快就会执行,但现在需要1小时。 此查询在我的SQL7服务器上运行,大约需要10秒钟。 此查询存在于另一台SQL7服务器上,直到上周才开始 10秒 两台服务器的配置相同。只有硬件不同。
现在,在第二台服务器上,此查询大约需要30分钟来提取s ame细节,但任何人都改变了任何细节。
如果我在没有Where的情况下执行此查询,它将在7中显示详细信息 秒。 如果问题在哪里
,此查询仍然需要大约相同的时间答案 0 :(得分:0)
没有看到查询和可能的数据,除了提供提示之外我不能做很多事情。
希望这有帮助。
答案 1 :(得分:0)
如果不知道您的表中有多少数据,并且不知道您的架构,那么很难给出明确的答案,但需要注意的事项:
UPDATE STATS
或DBCC REINDEX
。 WHERE
子句和JOIN
谓词中使用的列。OR
条款(即,您WHERE table1.col1 = @somevalue OR table2.col2 = @someothervalue
处)。 SQL无法使用此构造有效地使用索引,您可以通过将查询拆分为两个并UNION
结果来获得更好的性能。LEFT JOIN
的地方,重新审视逻辑并查看它是否需要左转或是否可以变为内部联接。有时候人们会使用LEFT JOIN,但是当你检查查询其余部分的逻辑时,有时很明显LEFT JOIN什么都不给你(因为,例如,某人可能已经添加了WHERE col IS NOT NULL
谓词加入表)。 INNER JOIN可以更快,所以值得回顾所有这些。如果我们能够看到查询,那么建议事情要容易得多。