首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >连接多个表的性能

连接多个表的性能
EN

Stack Overflow用户
提问于 2013-07-17 10:53:55
回答 2查看 2.4K关注 0票数 1

在我目前的项目中,我必须将多个表(大约10->20个表)连接在一起。在这些表中,大约有1->3个百万行的大表(最大:8000万行),另一个表最多只有数千行。

目前,我的查询如下:

代码语言:javascript
运行
复制
SELECT *
FROM table1 left join table2 on table1.A=table2.A
table1 left join table3 on table1.B=table3.B
table1 left join table4 on table1.C=table4.C
table1 left join table5 on table1.D=table5.D
....
table1 left join table15 on table1.Z=table15.Z

table1和table2是大表格,其他是小表格。我在所有这些表中都有聚集索引,但性能仍然很低。因此,我想知道是否有什么我可以尝试提高性能。

p/s:我尝试在这些表中创建非聚集索引,但性能变得比以前低。

EN

回答 2

Stack Overflow用户

发布于 2013-07-17 11:02:45

最快的查询是,如果您对table1进行了反规范化,以便拆分出的规格化值实际上是表的一部分。

您可以尝试的另一个解决方案是构建一个临时表,它是其他20个小表的一个大集合。然后将该临时表重新加入到您的table1中。

票数 0
EN

Stack Overflow用户

发布于 2013-07-17 11:45:13

首先,您真的需要所有这些连接的数据吗?我认为大多数情况下你不需要。如果你需要,你可能需要检查你的需求和架构。

所以诀窍是,你只得到你想要的数据,而不是所有的数据。并尽可能早地过滤数据(甚至在加入下一个表之前。但不用担心,SQL Server会为您做一些优化)。

我会从用Ctrl+L检查执行计划开始,试着找出那些“索引扫描”节点并为它们建立索引。如果不看你的行刑计划我不能再往前走了。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17690290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档