SQL - 减少连接的时间

时间:2015-01-13 10:49:57

标签: sql-server join

首先,我对SQL很新。

我有一张桌子,每天约有500k行 - Table1

我正在尝试为Table1做两个左连接,其中一个表有10k行,其他表有200k行。

查询运行大约15分钟。有什么办法可以减少连接的时间吗?

我们是否有类似于加入索引的内容?

我找到了关于PRIMARY KEYFOREIGN KEY的主题,但这样做会减少加入所用的时间吗?

Kidnly帮我解决了这个问题。

表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]

提前致谢。

0 个答案:

没有答案