現在1000万件近くデータがあるテーブルをパフォーマンス向上のため、パーティション化することを考えています。
環境は、Oracle10gです。
一旦、パーティション・テーブルを作成した後、データを移行する必要がありますが、
その方法に以下を考えました。
・Accessのクエリを使って「追加」
・ObjectBrowserでInsert文を出力し、それでInsert
膨大な件数ですので、どちらにしろ時間がかかります。
どちらかというと、後者のほうがいいのかなぁと思いましたが…。
もしこれ以外に有効な方法(10gに用意されているツール等)がありましたら、ご教授願えませんでしょうか?
No.1
- 回答日時:
insert into 移行先 select 項目名 from 移行元
のインサート文ではダメなの?
テーブル名が同じなら
create table 移行元_wk as select * from 移行元
のようにして退避しておくとか。
DBの外に出してしまうといろいろと面倒くさいので、私はパーティション化するときはそのようにしています。
試しにwhereでデータを限定して実行したところ、
数分で終了しました。
下手に外に出すよりこのほうがいいのですね。
ありがとうございました。
No.2ベストアンサー
- 回答日時:
一番簡単な方法は、邪魔になる参照制約を無効にして、
rename emp to emp_bak;
create table emp ( ...... ) partition by ... ( ...... );
insert into emp select * from emp_bak;
drop table emp_bak;
最後に、emp 表に索引や制約を付けて完了!
っていうところでしょうか。
insert の前に索引を付けてしまうと、データ件数が多い場合、insert に膨大な時間がかかってしまう恐れがあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- ルーター・ネットワーク機器 AU光10G回線について 6 2022/07/25 00:12
- ドライブ・ストレージ 古い外付けHDDから新品外付けHDDへのデータ移行方法 (Mac) 2 2022/12/11 02:01
- ルーター・ネットワーク機器 家庭内LANで10GbE 3 2022/11/14 02:03
- MySQL [1000地域 × 10カテゴリー = 1万件のテーブル]!グループ化? 1 2023/06/14 23:56
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
count(1)とcount(*)の違い
-
Oracle上のテーブルからCREATE ...
-
truncate文で全テーブルを一気...
-
ローマ字入力の文字リスト
-
CLOB型へのINSERT
-
テーブル名を[]でくくらないと...
-
SQL*Loaderをダイレクトモード...
-
DBで第1正規形と第2正規形の...
-
Access レコードを追加できませ...
-
データを削除しても表領域の使...
-
postgreSQLのint型は桁数指定が...
-
INDEXの無効化
-
他の処理でselectさせないよう...
-
Data Pump で大量データインポ...
-
ORA-00959: 表領域'****'は...
-
カラムの存在チェック
-
Viewにインデックスは張れ...
-
SQLでスキーマ名(所有者名)の...
-
viewのバックアップ
-
トリガーでロールバックは可能?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CLOB型へのINSERT
-
count(1)とcount(*)の違い
-
truncate文で全テーブルを一気...
-
テーブル名を[]でくくらないと...
-
Oracle複数の表をもとにmerge文...
-
1つのテーブル・2つの列を結合...
-
Oracle上のテーブルからCREATE ...
-
sqlplusで実行したSQLの結果を...
-
oracle sqlで先頭の1件を取得
-
主キーが二つのテーブルのselec...
-
SQLのto_char関数の未定義エラー
-
oracleのプライマリ・キー名の変更
-
Oracle テーブルの列削除
-
グループの数を取得したい
-
CASCADE CONSTRAINTSについて
-
複数テーブルのUPDATE
-
SQL*Loaderをダイレクトモード...
-
マンションのベランダでお酒の...
-
テーブル作成のサンプル
-
インラインビューの更新権限に...
おすすめ情報