在SQL中,使用DISTINCT如何影响性能?

Cur*_*che 5 sql performance ms-access

我试图选择一个不同的列表,在几个字段上创建重复项.例如,

SELECT tablename.field1Date, 
       tablename.field2Number, 
       tablename.field3Text 
FROM tablename;
Run Code Online (Sandbox Code Playgroud)

将分别在日期,数字和文本字段上选择重复记录.

现在,当我选择不同的记录来提供我正在寻找的东西时,性能似乎会急剧下降.

SELECT DISTINCT tablename.field1Date,
                tablename.field2Number, 
                tablename.field3Text 
FROM tablename;
Run Code Online (Sandbox Code Playgroud)

这有什么原因吗?我必须承认我正在使用MS Access 2003,这可能是个问题.

BIB*_*IBD 10

是的,基本上它必须对结果进行排序,然后重新处理以消除重复.这种剔除也可以在排序期间完成,但我们只能推测代码在后台运行的准确程度.您可以通过创建由所有三(3)个字段组成的索引来尝试提高性能.