【发布时间】:2015-10-19 10:16:48
【问题描述】:
我在 Microsoft Access 上有两个表:T_DATAS(大约 200 000 行)和 T_REAF(大约 1000 行)。
T_DATAS 有很多列(大约 30 列),T_REAF 大约有 10 列。
我必须告诉你,我不能更改这些表,也不能创建其他表。我必须使用它。
两个表都有 6 个相同的列。我需要连接这 6 列上的表,以选择 T_DATAS 中的所有列以及 T_REAF 但不在 T_DATAS 中的列。
我的查询是:
SELECT A.*, B.CARROS_NEW, B.SEGT_NEW, B.ATTR
INTO FINALTABLE
FROM T_DATAS A LEFT JOIN T_REAF B ON
A.REGION LIKE B.REGION AND
A.PAYS LIKE B.PAYS AND
A.MARQUE LIKE B.MARQUE AND
A.MODELE LIKE B.MODELE AND
A.CARROS LIKE B.CARROS AND
A.SEGT LIKE B.SEGT
我得到了我需要的结果,但问题是这个查询花费的时间太长而无法给出结果(大约 3 分钟)。 我知道 T_DATAS 包含很多行(200 000),但我认为 3 分钟对于这个查询来说太长了。
您能告诉我这个查询有什么问题吗?
非常感谢您的帮助
【问题讨论】:
-
你为什么在此处使用 like 进行查询?
-
另外,考虑在表上放置一些索引以加快查询速度
标签: sql ms-access join optimization ms-access-2010