ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

Re: Pervasive以外の処理速度について

このトピックの投稿一覧へ

通常 Re: Pervasive以外の処理速度について

msg# 1.1
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2007-5-7 18:49 | 最終変更
atushi  半人前 居住地: 長野県  投稿数: 30
yone様、こんにちは

・問題の切り分けとして、念のために、
既存PGを残しておいて、PGを一式コピーしてから、
バッチ集計中の画面表示をメッセージのみにするなどして、
測定してみると、どうなりますでしょうか?
「〜検索中..」「〜作成中..」などなど。

V8からV9Plus移行の場合になってしまいますが、1レコードずつの
値表示の場合、極端に遅くなってしまうことがありました。
その中でもラインモードのバッチ画面は、特に遅いので、必ず、
スクリーンモードにします。
速度的には、画面表示なしが一番速いですが、長時間かかるバッチ
は、フリーズしていると勘違いされるので、何か画面表示は
あった方が良いと思われます。

-----------------------------------------------------------
V8で正常動作しているプログラムと思われるので、以下の内容は、
あまり関係ないですが、全体的に速くしたい場合のみ良いかも。
<私は、オラクルでの場合なので、以下参考程度。>
-----------------------------------------------------------
・物理トランザクションでのコミットを、レコード単位ではなく
タスク単位もしくは、処理単位にして、コミット回数を減らすと、
搭載メモリにもよりますが、速くはなると思います。
(処理単位はトランザクション失敗で、実行前までロールバック)

・多重ループの場合、できればレコード数が多いテーブルを最初の
タスクのメインテーブルにして、リンクは照会リンクではなく、
可能な限り結合リンクで抽出したり、外部リンクを使用する。
(SELECT文の発行数や、ループするタスク数を減らすのが目的。)

・メインテーブルの範囲に記述できない抽出は、範囲式ではなく、
[DB SQL]でWHERE句の抽出をする。

(以下、追記)
・結合リンクのキー以外の抽出は、全て位置付で行う。
テストしてみると、結合リンク範囲だと遅くなるのがわかります。
位置付に記述できない場合は、[DB SQL]でWHERE句を記述する。
※結合/外部リンクがあると、[DB SQL]ではアルファベットで
 テーブル名を指定するようになります。

・速度面だけを考えるとMAGICでもVBでも同じように実行できる
ストアドプロシージャを使用する。
投票数:0 平均点:0.00

投稿ツリー

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約