【发布时间】:2016-10-24 04:39:15
【问题描述】:
我有一个大查询,以便从 40 个表中获取数据;查询包含(40 个表选择),每个选择都包含案例和多连接和条件,每个表选择后我都有 UNION。
这些表中的这些选择存在于 CTE 中,然后是 CTE 中的最终选择。
主要问题是性能问题,因为我在每个表中都有大量数据。
您能否提供您的主要想法或提示以提高查询性能?
【问题讨论】:
-
这是一个非常广泛的问题。您为什么要为此使用 CTE,为什么将所有数据合并到一个大查询中?你的索引正确吗?
-
把问题分解成更小的部分。单独检查每个 SELECT。哪些是问题查询?
-
当然,索引是正确的。我还使用联合来从很多表中返回确切的数据!
-
您需要删除重复项,还是可以改为 UNION ALL?有些选择与其他选择相似吗?
-
这个问题现在无法回答。没有真正的数据可供我们任何人使用。但是,即使您确实编辑了问题以包含所有相关数据,它也可能太长且太麻烦。尝试将查询分解为更小的部分,看看您可以在所有这些部分中单独改进什么。
标签: sql sql-server performance sql-server-2008