1

2 つのテーブルがあります。1 つは約 2 億行、もう 1 つは約 1 億行です。それらを結合して、行の約 3/4 と列の 1/6 を選択する必要があるため、新しいテーブルを作成し、次を使用して挿入しています。

INSERT INTO NEWTABLE 
SELECT COLUMN1, COLUMN2, COLUMN3, COLUMN4
FROM TABLE1
UNION ALL 
SELECT COLUMN1, COLUMN2, COLUMN3, COLUMN4
FROM TABLE2 
LOCK IN SHARE MODE;

これには時間がかかります。実際には何日も。

私はこれを最速の方法でやっていますか?

私の感じでは、クエリは主な問題ではありません。時間がかかるのは、両方のソース テーブルを一時テーブルにコピーすることです。これを証明するにはどうすればよいですか?もしそうなら、私はそれを回避できますか?

ありがとうございました!

4

2 に答える 2

0

UNION ALL を削除するだけで十分です。それにもかかわらず、問題がある場合は、ここに時差を投稿してください。

  • NEWTABLE のインデックスを無効にする
  • 2 つの INSERT DDL を実行します。
  • インデックス作成を有効にする
于 2013-04-23T06:39:11.987 に答える