Sql server SQL-减少连接的时间
首先,我对SQL非常陌生 我有一张一天大约有500k行的表-Sql server SQL-减少连接的时间,sql-server,join,Sql Server,Join,首先,我对SQL非常陌生 我有一张一天大约有500k行的表-Table1 我尝试对Table1做两个左连接,其中一个表有10k行,另一个表有200k行 查询运行约15分钟。我们有没有办法缩短连接时间 我们是否有类似于加入索引的功能 我找到了一个关于主键和外键的主题,但是这样做会减少加入的时间吗 帮我回答这个问题 表1: sDate No Val Val2 01-Jan 1 A Z 01-Jan 1 B A 01-Jan 2 C R 01-Jan 2 D
Table1
我尝试对Table1
做两个左连接,其中一个表有10k行,另一个表有200k行
查询运行约15分钟。我们有没有办法缩短连接时间
我们是否有类似于加入索引的功能
我找到了一个关于主键
和外键
的主题,但是这样做会减少加入的时间吗
帮我回答这个问题
表1:
sDate No Val Val2
01-Jan 1 A Z
01-Jan 1 B A
01-Jan 2 C R
01-Jan 2 D DF
01-Jan 2 E F
01-Jan 3 F DF
02-Jan 3 G T
02-Jan 3 H H
02-Jan 4 I H
02-Jan 4 J G
02-Jan 5 K B
02-Jan 5 L V
02-Jan 1 A Z
03-Jan 1 B A
03-Jan 2 C R
03-Jan 2 D DF
03-Jan 2 E F
03-Jan 3 F DF
04-Jan 3 G T
04-Jan 3 H H
04-Jan 4 I H
04-Jan 4 J G
04-Jan 5 K B
04-Jan 5 L V
左联接表1:
No Lab1
1 P
2 Q
3 A
4 R
5 T
左联接表2:
zDate No Tab1
01-Jan 1 P
01-Jan 2 Q
01-Jan 3 A
01-Jan 4 R
01-Jan 5 T
02-Jan 1 P
02-Jan 2 Q
02-Jan 3 A
02-Jan 4 R
02-Jan 5 T
03-Jan 1 P
03-Jan 2 Q
03-Jan 3 A
03-Jan 4 R
03-Jan 5 T
04-Jan 1 P
04-Jan 2 Q
04-Jan 3 A
04-Jan 4 R
04-Jan 5 T
查询:
SELECT [sDate]
,[No]
,[Val1]
,[Val2]
,[Lab1]
,[Tab1]
FROM [Table1]
LEFT JOIN [Left Join - Table1] ON
[Table1].[No] = [Left Join - Table1].[No]
LEFT JOIN [Left Join - Table2] ON
[Table1].[No] = [Left Join - Table2].[No]
提前谢谢。您能给我们看一些表结构的示例吗?请给出您的表结构,并遵循sql中的执行计划,您将看到为了使联接更快地工作,您需要执行哪些索引。@timus20001-我已经用表结构进行了更新。这是完整的查询吗?不在哪里condition@Neeraj-这是连接查询。我将结果存储在CTE中,并在连接完成后对所有列执行
计数(*)
。