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

パスワード:


パスワード紛失

Re: 埋め込みSQLを使用した時の表示速度について

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

通常 Re: 埋め込みSQLを使用した時の表示速度について

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

◎オンラインのSQLコマンドの場合
 私は、オラクルでの経験ですが、オンライン画面での
 埋め込みSQLは、レコード件数が多い場合は、
 特におすすめできないと思います。

<理由>
・オンライン画面では、SQLコマンドの結果データベースに
 独自の名前でコピーされるので、件数が多いほど時間がかかる。

・データベースと結果データベースを同じにすれば、件数が多い
 場合良いとマニュアルにあるが、MAGICを終了する
 (セッション終了)まで、オープンカーソルが蓄積してしまい、
 1日稼働すると、カーソルオーバーエラーでMAGICが落ちる。
 そしてデータベース上に独自の名前のテーブルが残ってしまう。
 データベースの最大オープンカーソル数を増やせば、一時的に
 は良いが、本当の解決にはならないと思われる。

・上記の問題があるので、結果データベースを
 [Pervasive]や[memory]等にするのが良いが、
 結果データベースに多くの件数をコピーするので遅い。
 Pervasiveは、[monitor]にて作成状況を確認できる。
 よってレコード件数が少なくなるように、WHERE句などで
 抽出するしか対処ができなくなってしまう。

・通常と比べて、オンライン画面が作成しにくい。

<対応策:SQLコマンド→データベースビュー>
・SQLコマンドを元に、データベースビューを作成して、
 MAGICのテーブルに定義取得して、タイプをセットして
 重複不可の仮想キーを必ず1つ追加して、PGで
 メインテーブルとして使用する。
 オンライン画面も通常通り、作りやすくなります。

<以下追記しました。:発言の編集機能にて>
・やりたい事が、内部結合や左外部結合だけであれば、
 データベースビューを作成しなくてもできます。
 メインテーブルを定義して、結合リンクや外部リンクで、
 実現できます。(SUMなどの集計は、無理ですが。)

 並べ替えで、結合テーブルの項目があってテーブルのキーで
 定義できないときは、ソートテーブルにてデータベースソート。
 抽出は[DB SQL]で、WHERE句の記述を入れます。

---------------------------------------------------
◎バッチのSQLコマンドの場合(補足)
 バッチのSQLコマンドは、私がテストしたときには、
 結果データベースを設定しても、結果データベースへ
 コピーはされなかったので、速度的に問題はなかった。
 当たり前ですが、データベースビューにしても問題なかった。

 リファレンス(ref9Plus.pdf)が一番詳しく書いてあるが、
 SQLコマンドで、オンライン画面表示するときは、
 結果データベースに出力されるみたいです。
---------------------------------------------------
投票数:1 平均点:10.00

投稿ツリー

  条件検索へ


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