- PR -

VB.NETのADO.NETのデータベース更新処理速度改善

1
投稿者投稿内容
MORICS
常連さん
会議室デビュー日: 2003/10/03
投稿数: 27
投稿日時: 2004-02-18 21:24
VB.NETの初心者です。
ADO.NETにて、AーMDBのAテーブルからB−MDBのBテーブルにデータを追加あるいは更新処理する場合の処理速度改善方法をご教授願います。
約20万件ほどのレコードで100フィードのデータのAテーブルからBテーブルにADO.NETにて追加処理あるいは更新処理する場合ですが、

1.Aテーブルを初めに、全レコードFILLメソッドでDETASETに取得しておいて、ループ処理の中で、Bテーブルを1レコードづつ取得してUPDATEする場合は、Bテーブル向けのDATASETのメモリーは少なくて済みますが、処理時間が10時間以上かかります。

2、AテーブルとBテーブル共に初めに、全レコードFILLメソッドで取得しておいて、ループ処理の中で更新・追加処理をしておいて、ループ終了後にUPDATEする場合は、Bテーブル向けのDATASETのメモリーは大きくなりますが、処理時間は短くて済みます。

現在、VB.NETのADO.NETでのデータ更新方法は、上記2方法しか知っておらず、メモリーと処理時間で困っています。

約20万件ほどのレコードで100フィードのデータのA−MDBのAテーブルからB−MDBのBテーブルにADO.NETにて追加処理あるいは更新処理する方法をご教授お願いする次第です。

現在、vb.netにてADO.NETの使用方法は少し理解できていますが、ADOを使用する方法は全く知りません。

宜しくご教授お願い致します。


maru
常連さん
会議室デビュー日: 2001/10/09
投稿数: 23
投稿日時: 2004-02-18 22:28
B-MDBにA-MDBのテーブルをインポートして
B-MDB内で処理させるというのはいかがですか?
MORICS
常連さん
会議室デビュー日: 2003/10/03
投稿数: 27
投稿日時: 2004-02-18 22:54
MARU様
早速の連絡有難う御座います。
A−MDBのA−テーブルを、B−MDBにVB.NETでインポートする方法を知りません。ACCESSでの方法は知っているのですが。。。。。
宜しくご教授お願い致します。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-19 09:19
3、Bテーブルを、全レコードFILLメソッドで取得しておいて、DataReaderを使用して
Aテーブルから1件づつ読み込んで更新・追加処理を行い、Aテーブルから全件読み
終わったらUPDATEする

AからBに更新するならばAを1回で全件読む必要がないので上記の方法がいいと思います
MORICS
常連さん
会議室デビュー日: 2003/10/03
投稿数: 27
投稿日時: 2004-02-19 15:30
ゆうじゅん様
有難う御座いました。
早速、試してみます。

Y.K
会議室デビュー日: 2004/02/19
投稿数: 3
投稿日時: 2004-02-19 16:19
ADOなら可能ではないかと思いますが、未検証なのでご了承下さい。

insert into B-MDB.B
(・・・・・・・)
select
・・・・・・・
from A-MDB.A

という感じで実行できないでしょうか
ちなみに、A-MDBやB-MDBのところは、MDBのフルパスを書いて上げると良いです
こんな感じ、
insert into "C:\TEST\B.MDB".B

ではでは
MORICS
常連さん
会議室デビュー日: 2003/10/03
投稿数: 27
投稿日時: 2004-02-19 20:27
Y.K様
有難う御座います。
試してみます。
1

スキルアップ/キャリアアップ(JOB@IT)