我的sql语句是:INSERT INTO TABLE (A, B, C, D) SELECT a, b, c, d FROM DUAL WHERE NOT EXISTS (SELECT * FROM TABLE WHERE TABLE.A = a AND TABLE.B = b AND TABLE.C = c AND TABLE.D = d);
作用是如果表中不存在重复的数据则插入数据。我表中已经有了4000万的数据量,并且建立了在A列建立了索引,在B列也建立了索引。我在执行该语句时速度特别慢,请问有什么可以改进的措施和方法。(其中,A,B,C,D为表中的字段,a,b,c,d为要插入的数值)。
作用是如果表中不存在重复的数据则插入数据。我表中已经有了4000万的数据量,并且建立了在A列建立了索引,在B列也建立了索引。我在执行该语句时速度特别慢,请问有什么可以改进的措施和方法。(其中,A,B,C,D为表中的字段,a,b,c,d为要插入的数值)。
2用MERGE INTO
改成
SELECT A,B,C,D FROM TABLE WHERE TABLE.A = a AND TABLE.B = b AND TABLE.C = c AND TABLE.D = d;
2、A/B/C/D四个查询条件,哪个过滤数据的条数越多,放在越后面。
创建一个联合主键(A,B,C,D),再写一个存储过程执行此动作吧,运用LOOP循环就可以了!