0

我是 SQL 查询性能增强的新手,并被赋予了一项任务来增强它的视图。

这个视图定义应用了大约 20 个左连接,我认为这会妨碍性能 - 在本地服务器上检索 35K 奇数行大约需要 9 秒。

提高其性能的最佳方法是什么?

4

3 回答 3

1
  1. 考虑是否需要 LEFT 联接而不是 INNER 联接。由于不了解所涉及的数据,我们无法为您提供。
  2. 对您的查询运行执行计划。
  3. 识别索引可以提高性能的连接。
  4. 考虑去规范化你的数据库设计。
于 2012-07-18T12:29:18.990 回答
0

没有看到查询很难说。提高性能的一种可能方法是为连接中涉及的列创建索引。

如果您查看查询执行计划,您应该能够看到查询的哪一部分正在减慢速度。您还可以通过数据库引擎优化顾问运行查询,并允许顾问建议哪些列索引会产生最大的差异。

于 2012-07-18T12:28:06.513 回答
0

你在哪里使用这个视图?我建议如果您在 proc 或类似的情况下使用它,然后只使用所有视图列中的几列。其中一些连接很可能是多余的,因为其中一些连接甚至不会影响最终结果,而且您​​不需要连接不必要的表。因此,最好的方法是分析在何处使用此视图以及每次调用该视图时使用了哪些列以及哪些表具有所需的列。

我建议如果您从其他 proc 或类似的程序中使用此视图,而不是引用视图引用每个表并仅使用那些需要的表。

于 2012-07-18T12:34:07.317 回答