ページの先頭です。
ここから本文です。

よくあるご質問(サポートFAQ)

DBリンクキット:現在、移行中のシステムに、補足レコード付のISAMファイルが複数存在します。現在、Win環境への移行を開始していますが、補足レコードの取扱について教えてください。1.データ移行の際、ファイルメンテナンスキットの「日本語ファイル変換」で  補足レコードを移行可能でしょうか?  可能な場合、その手順を教えて下さい。2.補足レコード付のISAMファイルを、Win環境では、OracleのDBに変換する予定 です。 データベース化した場合、補足レコードの管理は

質問内容

現在、移行中のシステムに、補足レコード付のISAMファイルが複数存在します。

現在、Win環境への移行を開始していますが、補足レコードの取扱について教えてください。

1.データ移行の際、ファイルメンテナンスキットの「日本語ファイル変換」で
  補足レコードを移行可能でしょうか?
  可能な場合、その手順を教えて下さい。

2.補足レコード付のISAMファイルを、Win環境では、OracleのDBに変換する予定
 です。
 データベース化した場合、補足レコードの管理はどのように行えばよいので
 しょうか?
  また、データベースの表定義などは、通常のindexファイルと比べ、どう異なる
 のでしょうか?

3.データ移行が可能で、Win環境でも補足レコード付索引ファイルが使用可能な
 場合、COBOLプログラムの修正はありますか?

回答内容

まず、移行手順ですが、以下の手順で移行可能です。

a)Sモデル上で、順編成ファイルに変換する。
 (例えば、なんらかのアプリケーションにより全件READ→WRITEで順編成に
  出力する。)
b)データベースの表は、主キーに相当するレコードに、重複を許可する索引
 を作成する(create index)。
c)ファイルメンテナンスキットで、a)のファイルを移行する。この際、デー
 タベース側のレコード定義は不要であるが、入力ファイル側はレコードを
 定義する。

「補足レコードの管理」という点についてですが、データベースには「補足レコード」そのものは存在しないので、特に必要な管理はありません。

COBOLプログラムに対しては、Sモデル上で「補足レコード」を意識した処理が必要ではないのと同様に、WindowsNT版COBOL+DBリンクキットについても意識する必要はありません。
したがって、この点についてのアプリケーションを変更する必要はありません。

以上がご質問に対する内容ですが、そのまま移行したのでは、恐らく性能問題になる恐れが十分にあります。
主なポイントは以下の通りですので、アプリケーションの処理目的を確認された上で、予めチューニングのご検討をお願いします。

・二重キーを許可するキー(WITH DUPLICATES)に対しては、いずれかの一意な
 項目と組み合わせ、一意インデックスを作成しないと、性能が劣化します。
 といいますのが、READ NEXT/PRIORとスクロールする場合に、カレントレコード
 を一意的に識別するものが必要でありますが、一意インデックスが作成されて
 いないとrowidが使用されます。つまり、rowidをキーにした検索が行われる
 ので、TABLE FULL SCANが実行され、パフォーマンスに悪影響を及ぼします。

 なお、一意インデックスを作成できない場合には、「SHAREDモード順アクセス
 方式」オプションの変更や、SELECT命令の利用を検討する必要があります。

・アプリケーションで、「順リードの'02'ステータス(注)」を期待していないので
 あれば、「順リードの'02'ステータス検出」オプションを「行わない」に変更
 してください。この検出自身、余計なSQL文を発行していますので、性能が
 劣化します。
 「順リードの'02'ステータス」を期待している場合は、実際に性能評価を
 行わないと判断できないでしょうが、性能に影響がでる様であれば、'02'
 ステータスを監視しない方法へアプリケーションを変更する必要があります。

 (注)二重キーを許可するキー(WITH DUPLICATES)についてREAD(NEXT/PRIOR)する
   場合に、次のレコードが同一キーを持つとREADが 02 というステータスが
   返却される、というCOBOL言語仕様を言っています。

  • コンテンツID: 3150003286
  • 公開日: 1998年12月01日
  • 最終更新日:1998年12月01日

アンケート

サポート情報充実のためアンケートにご協力をお願いいたします。



コメント欄:
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。