I have an application which is running slowly over a WAN - we think the cause is multiple inserts into a table. I'm currently looking into more efficient ways to insert multiple rows at the same time.
I found this method:
INSERT ALL
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (100,20)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (21,2)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (321,10)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (22,13)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (14,121)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (11,112)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (112,23)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (132,2323)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (121,34)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (24333,333)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (1232,3434)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (4554,3434)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (3434,211)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (3434,1233)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (12,22)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (356,233)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (9347,23)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (8904,245)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (342,4545)
INTO MULTI_INSERT(VAL_1, VAL_2) VALUES (453,233)
SELECT 1 FROM DUAL;
What I would like to know is: is the method above actually more efficient than just doing 20 "INSERT INTO MY_TABLE (1,1);"? Are there other methods of doing this?