title: Oracle 11g - most efficient way of inserting multiple rows
body: <p>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.</p>
  
  <p>I found this method:</p>
  
  <pre><code>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;
  </code></pre>
  
  <p>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?</p>