4

WAN 経由で実行速度が遅いアプリケーションがあります。原因はテーブルへの複数の挿入であると考えられます。現在、複数の行を同時に挿入するより効率的な方法を検討しています。

私はこの方法を見つけました:

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;

私が知りたいのは、上記の方法は実際には 20 個の "INSERT INTO MY_TABLE (1,1);" を実行するよりも効率的ですか? これを行う他の方法はありますか?

4

4 に答える 4

0

mysql のような一部の RDBMS と、SQL Server が複数行挿入データ構文をサポートするようになりました。

Insert into myTable ( c1, c2 ) values
( 1,1 ),
( 1,2 ),
... ;

( Sql Server の複数行のデータの挿入またはmysql での複数行の挿入の詳細)

しかし、オラクルしないでください。悪い知らせで申し訳ありません。より近い方法はTech on the Net に記載されています。

于 2013-08-06T10:07:54.580 に答える