当前位置:  开发笔记 > 数据库 > 正文

SQL - 改进NOT EXISTS查询性能

如何解决《SQL-改进NOTEXISTS查询性能》经验,为你挑选了3个好方法。

有没有办法可以改善这种SQL查询性能:

INSERT
INTO ...
WHERE NOT EXISTS(Validation...)

问题是当我的表中有很多数据(如数百万行)时,WHERE NOT EXISTS如果非常慢,则执行该子句.我必须进行此验证,因为我无法插入重复数据.

我使用SQLServer 2005

谢谢



1> cjk..:

确保您在索引列上进行搜索,而不管理这些列中的数据(如子字符串等)



2> Blorgbeard..:

关闭我的头顶,你可以尝试这样的:

 TRUNCATE temptable
 INSERT INTO temptable ...
 INSERT INTO temptable ... 
 ...
 INSERT INTO realtable
 SELECT temptable.* FROM temptable
 LEFT JOIN realtable on realtable.key = temptable.key
 WHERE realtable.key is null



3> Otávio Décio..:

尝试用左外连接替换NOT EXISTS,它有时在大数据集中表现更好.


ávio,我不认为NOT EXISTS总是会导致表扫描.看到这篇文章:http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/582544fb-beda-46c0-befd-4b28b5c2cdee/
推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有