Office中国论坛/Access中国论坛

标题: 多一个NOT性能差异如此之大! [打印本页]

作者: goodidea    时间: 2004-10-5 05:24
标题: 多一个NOT性能差异如此之大!
在SUBMIT以后居然告诉我密码错误发贴失败 这回简短的说明一下情况:

tbl_file_list_at_server和tbl_file_list_at_clients具有完全相同的结构,在FILENAME字段上有允许重复的索引.记录数量分别为5000~10000.

在安装有WIN2000SERVER+ACCESS2000的P42.4A/512MDDR双通道的专业服务器上运行

此语句运行时间远远超过20秒.

SELECT tbl_file_list_at_server.FILENAME, tbl_file_list_at_server.MEMO

FROM tbl_file_list_at_server

WHERE (((tbl_file_list_at_server.FILENAME) Not In (select filename from tbl_file_list_at_clients)));

为达到相同的效果, 使用临时表, 执行一个INSERT一个DELETE语句, 运行速度显著提高,无明显停顿.

以下语句仅少一个NOT关键字(当然意义也发生变化), 运行查询不到2秒.

SELECT tbl_file_list_at_server.FILENAME, tbl_file_list_at_server.MEMO

FROM tbl_file_list_at_server

WHERE (((tbl_file_list_at_server.FILENAME) In (select filename from tbl_file_list_at_clients)));

如此大的性能差异, 以后使用NOT IN的时候一定要留意.
作者: ui    时间: 2004-10-5 05:46
not in 速度是非常慢的,我现在几乎不用它了
作者: zyp    时间: 2004-10-5 15:52
用in也會這樣嗎?




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3