有没有办法可以改善这种SQL查询性能:
INSERT INTO ... WHERE NOT EXISTS(Validation...)
问题是当我的表中有很多数据(如数百万行)时,WHERE NOT EXISTS
如果非常慢,则执行该子句.我必须进行此验证,因为我无法插入重复数据.
我使用SQLServer 2005
谢谢
确保您在索引列上进行搜索,而不管理这些列中的数据(如子字符串等)
关闭我的头顶,你可以尝试这样的:
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
尝试用左外连接替换NOT EXISTS,它有时在大数据集中表现更好.