1

あるデータ ソースから別のデータ ソースに複数のテーブル (最大 150 万レコード) をコピーしていますが、時間がかかります。DBD::Pg の使用をスピードアップしたいと考えています。

私は現在 pg_getcopydata/pg_putcopydata を使用していますが、宛先テーブルのインデックスがプロセスを遅くしていると思います。

を使用してテーブルのインデックスに関する情報を見つけることができることがわかりましたが$dbh->statistics_info、この情報に基づいてインデックスを動的に削除/再作成するプログラムによる方法を誰かが持っているかどうか知りたいです。

4

1 に答える 1

1

プログラムによる方法は、適切なCREATE INDEXSQL ステートメントを DBI 経由で送信することだと思いますpsql

大きなテーブルをコピーするときは、次の順序でコピーする方がよい場合があります。

  • インデックスなしでテーブルを作成する
  • データのコピー
  • インデックスを追加
于 2012-04-11T22:12:42.923 に答える