我需要帮助来提高以下查询的性能。它的目的是从一组具有相同 ID(doublettes)的记录中选择一个记录。规则是 Date2 必须是最新的并且 Date1 必须存在:
对于InputTable (= rst(0) )
do 中的每个不同的 ID:
INSERT INTO FinalTable(ID, FID, KeyValue1, KeyValue2, Date1)
SELECT InputTable.ID,
InputTable.FID,
InputTable.KeyValue1,
InputTable.KeyValue2,
InputTable.Date1
FROM
( SELECT TOP 1 *
FROM
( SELECT *
FROM InputTable
WHERE ID='" & rst(0) & "' And Date1<>''
)
WHERE Date2 =
( SELECT Max(Date2)
FROM InputTable
WHERE ID = '" & rst(0) & "' and Date1 <> ''
)
);
InputTable 有大约 400.000 条记录和大约 200.000 个不同的 ID,并且只包含将出现在最终表中的 5 个字段,所有这些字段都是文本。
InputTable 是一个 importet .txt 文件,我在任何真实数据库之外使用 ACCESS。结果将再次写入 .txt 文件。
每个ID大约需要1秒,这太长了......是否可以显着提高性能?
我真的很感激任何帮助。