環境 vb6、access2000、oracle10g、OS:WinXP Pro
accessの中にある30,000件のレコードをvb6でoracle10gに日常的にinsertしようと考えてます。(ボタンクリック時etc)
insert into 『oracleのテーブル名』
select * from 『accessのテーブル名』
とは記述できないと思うのですが、30,000回 loop→insertさせると
15分くらい掛かります。何か処理速度を早くなる良い方法はありませんか? お知恵をお貸し下さい。宜しくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
「vb6」っていうのがよく分らないですね。
管理者権限とかが使えないってことでしょうか?以下は、オーソドックスな方法です。
「SQL*Loader」
http://www.thinkit.co.jp/free/article/0707/9/7/
「Oracle Migration Workbench」
http://otndnld.oracle.co.jp/easy/access/shift_ma …
参考URL:http://otn.oracle.co.jp/software/tech/migration/
No.2
- 回答日時:
こんにちは。
パフォーマンス向上についてですが、質問者さんとして「遅い」と
感じられるボトルネックの箇所はどこにあると思いますか?
(それがわかってしまったら質問しないでしょうけど)
例えば、データ移行の方法1つを見ても方法は沢山あります。
質問者さんのようにバッチプログラムを作って移行する方法は、
その1つに過ぎません。
劇的に向上を図りたいのであれば、ローダを使ったり、
トランザクションなどを上手に使うべきです。
現行の方法を採用するのであれば、早くする方法として、
Oracle データベースの移行先に定義されたインデックスを
すべて削除し、その状態にinsertを発行するというものです。
このとき、トランザクションで実行し、例えば、10000件ごとに
コミットをする、というようなやりかたをすれば早くなります。
動作の原理については、インデックスが無い状態ですので、
1件insertされたときに、インデックスへの書き込みが無い、
というのと、トランザクションを使用することによって、
表領域への書き込み頻度の低下、ということで向上が見込まれます。
あとは、あまり触れたくはありませんが、ミドルウェアの選択です。
VB6 からだと oo4o を使うのが最も効果的(?)らしいですが、
何を使って接続されていますか?
No.1
- 回答日時:
アクセスの追加クエリを作ってみてはいかがでしょうか?
まず、oracleのテーブルに対し、リンクテーブルを作った
mdbファイルを用意します。
コピー元のmdbファイルにて
クエリ作成でテーブルをaccessのテーブル名
クエリ種類を追加クエリに。
追加先の指定でリンクテーブルを作ったmdbファイルを指定し、
追加したいテーブル名を指定します。
30000回ループさせるよりは速いと思うんですが・・・。
お試しください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- MySQL 下の画像はSQLの4大命令の性質をまとめたものであるらしいです UPDATE INSERT DELE 1 2023/06/07 15:36
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- MySQL mysqlで INSERT と SELECTの用途は 1 2022/04/01 00:45
- PHP php エラー 3 2022/11/18 23:32
- Oracle sql(oracle)で質問です。 テーブルAのカラム名、日付(yyyymmdd)の値を テーブルB 2 2023/01/06 10:31
- ソフトウェア 移行PCにDockerがインストールされていても各種開発環境のアプリはインストールが必要? 2 2023/05/21 21:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
truncate tableを使って複数の...
-
オラクルのUPDATEで複数テーブル
-
CASEでBETWEEN制約
-
エラーを起こす方法
-
Where句のNot条件をAnd条件にし...
-
Oracleのシーケンスありのテー...
-
[materialized]マテリアライズ...
-
データ削除とSQL*Loaderでのイ...
-
複数レコードの複数フィールド...
-
既にテーブルが存在する場合の...
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
フラグをたてるってどういうこ...
-
SELECTした結果に行番号を求めたい
-
テーブル名が可変の場合のクエ...
-
Accessの構成をコピーしたい
-
PostgreSQLのtimestamp型で時間...
-
結合したテーブルをSUMしたい
-
SQLサーバに対するSQL文で抽出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エラーを起こす方法
-
オラクルのUPDATEで複数テーブル
-
truncate tableを使って複数の...
-
既にテーブルが存在する場合の...
-
データ削除とSQL*Loaderでのイ...
-
複数レコードの複数フィールド...
-
テーブル定義書(Oracle) 【IX】...
-
Where句のNot条件をAnd条件にし...
-
テーブルに変更があったらCSV出力
-
CASEでBETWEEN制約
-
AccessからOracle DB(View)を...
-
[materialized]マテリアライズ...
-
Oracleのリンクテーブルの「精...
-
テーブルDROPできないのです。。。
-
ora-01722のエラーについて
-
pro*cobol ⇔ oracle のデータ型...
-
accessのデータをoracleへinser...
-
フィールド数が異なるテーブル...
-
AccessVBAにて動的にテーブルを...
-
viewの性能
おすすめ情報