喫茶XRAYトップページ


[2615] データベースプログラミング高速化計画2返信 削除
2009/9/8 (火) 08:35:30 Sayke
何を今更・・・と言われると身も蓋も無いのですが。

一意のデータベースのテーブルからデータを読み取って、
同一のデータベースの別テーブルにデータを書き込むとし
ます。

A)コネクション(TADOConnection)を一つ生成して
  データの読込み及び更新を行う
B)コネクション(TADOConnection)を二つ生成して
  便宜上一方を読み込み用、一方を更新用として
  行う

ADODataSet.Connection := ADOConnection1;
{--(略)----}
while not ADODataSet.Eof do
begin
  {---データ加工処理(略)----}
  //Aの場合
 ADOConnection1.Execute('INSERT文');
  //Bの場合
  ADOConnection2.Execute('INSERT文');
end;

何事も無い処理ですが・・・
11万レコードを処理します。

A)の場合 Av.19分38秒
B)の場合 Av. 2分16秒 \(^o^)/

これはある作業中偶然判明したことなのですが、自身
何故Bの場合が早いのか良くわからんのです。

まあ、結果オーライトと言うことで。


[2621] Re:データベースプログラミング高速化計画2返信 削除
2009/9/13 (日) 00:10:02 Mr.XRAY
▼ Saykeさん

> 何を今更・・・と言われると身も蓋も無いのですが。

これは意識したことはないのですが...
コネクション(TADOConnection)を1つで使い回すこともしますが,
接続ごと(読み,書きは別)に使用することが多いです.
(サンプルプログラム集では違うのがあるかも知れません)

でもすごい差ですよね.
キャッシャとか,確保するメモリ領域の違いでしょうか.
でも,機能ごとに分けた方が,コードの可読性もいいとも考えます.

今は,XPやVista搭載のマシンでは,あまり消費メモリ量も意識する
必要がないので,その方がいいですね.

コーディングによって処理速度に違いがでるいい例ですね.
ういうノウハウは中々発見できないものです.
業務アプリと言えばデータベースは切り離せません.速度は命?
非常に参考になりました.サンクスです.

[2622] Re:データベースプログラミング高速化計画2返信 削除
2009/9/13 (日) 00:17:46 Mr.XRAY
▼ Saykeさん

> B)コネクション(TADOConnection)を二つ生成して

最近はあまり見かけなくなりましたが,Delphiで作成したEXEのサイズ
が大きくなるけど... という質問がありました.
もちろん,VBや.NETと比較してですが,これはもちろん当然なのですが,
なんとなく,コンポ類を多く使用すると,使うメモリが多くなってしまう
のではとか,実行速度が,起動が遅くなるとか,考えてしまうのかも
知れません.

そういうことに問題がなければ,考えなくなりましたね.
もちろん,Windows 95,98の時は結構気にしていました.
でも,98でも結構大丈夫なことがわかり,かなり大胆になりました.

たとえば,画像等をEXEに埋め込む時,

http://mrxray.on.coocan.jp/Halbow/Notes/N005.html
の方法だと起動時間にも影響しますが,

http://mrxray.on.coocan.jp/Halbow/Notes/N008.html
の方法であれば,起動時間などへの影響は少なくてすみます.


[2623] Re2:データベースプログラミング高速化計画2返信 削除
2009/9/14 (月) 11:25:41 Sayke
▼ Mr.XRAYさん

> たとえば,画像等をEXEに埋め込む時,
>
> http://mrxray.on.coocan.jp/Halbow/Notes/N005.html
> の方法だと起動時間にも影響しますが,
>
> http://mrxray.on.coocan.jp/Halbow/Notes/N008.html
> の方法であれば,起動時間などへの影響は少なくてすみます.


そうなのですか。
どちらも大して起動時間には関係ないと思ってました。
ただ、当方では.rsを使用していますが、起動時云々は関係なく
使いまわしに便利な為ってとこだったです。
これも結局、結果オーライ(う〜む、こればっか (>_<) )と
言う事でしょうか。


[2624] Re3:データベースプログラミング高速化計画2返信 削除
2009/9/14 (月) 23:28:23 Mr.XRAY
▼ Saykeさん

> どちらも大して起動時間には関係ないと思ってました。

よほどのサイズでなれば目に見える差はでないでしょう (^^;

INCM/CMT
Cyclamen v3.82