ILE COBOL 解説書

同期化データの利点

データを同期させるとどのような利点があるのでしょうか。 データを同期した場合の利点として、アクセス可能度の点でパフォーマンスが向上します。 欠点は、レコード・サイズが大きくなる (充てん文字スペースがレコードの一部を占める) ために一部のストレージが無駄になることです。

同期化を指定してもしなくても、01 レベルの項目とポインターは、常に 16 バイトの境界上に位置合わせされます。 同期化は、基本項目にしか指定できません。 グループ項目には、この文節を使うことはできません。

図 10 はこの概念を表したものです。

図 10. 同期化したときとしないときのデータ・ストレージ図


図 10 は、A と B は常に 16 バイト境界に位置合わせされることを示しています。 同期化を指定しないと、A2 と A3 は、サイズに関係なく連続して保管されます。 同期化を指定すると、4 バイト境界が選択され (A3 のタイプが原因で)、A3 はそれに応じて位置合わせされます。 A2 と A3 の間には、1 バイトの充てん文字があります。 しかし A3 はより迅速にアクセスされるようになります。

同期化とオフセット

上図では、A と B は、実際のストレージ内で互いに連続しているとは限らないことに注意してください。 言い替えると、B は A の開始点から 16 バイト後、または 48 バイト (16 x 3) 後、または 16 x N バイト後のどれで開始するかユーザーには分からないということです。 オフセットを指定することによって、同期化データを取り出そうとしてはなりません。

+----------------------------------IBM 拡張----------------------------------+

SYNCHRONIZED 文節は、ポインター・データ項目とプロシージャー・ポインター・データ項目に対しては暗黙指定されます。 リンケージ・セクションで宣言されたポインター・データ項目とプロシージャー・ポインター・データ項目は同期化されません。

SYNCHRONIZED 文節は TYPE 文節と同じデータ記述記入項目に指定することはできません。

DBCS、国別、外部浮動小数点、日付、時刻、またはタイム・スタンプのデータ項目に対する SYNCHRONIZED 文節は無視されます。

COMPUTATIONAL-1 データ項目の SYNCHRONIZED 文節は、フルワード境界でデータの位置合わせを行います。

COMPUTATIONAL-2 データ項目の SYNCHRONIZED 文節は、ダブルワード境界でデータの位置合わせを行います。

+------------------------------End of IBM 拡張-------------------------------+

項目に指定される USAGE によっては、SYNCHRONIZED 文節が特定の効果を持つ場合があります。表 17 に、ある項目の USAGE でどのように SYNCHRONIZED 文節がそれに影響を与えるかを示しています。

表 17. データ項目 USAGE および SYNCHRONIZATION 文節

USAGE の指定 SYNCHRONIZED 文節の処理
DISPLAY 構文検査されますが、実行には影響しません
DISPLAY-1 (DBCS) 無視されます
NATIONAL 無視されます
PACKED-DECIMAL 構文検査されますが、実行には影響しません
COMPUTATIONAL-1 フルワード境界でデータの位置合わせをします
COMPUTATIONAL-2 ダブルワード境界でデータの位置合わせをします
COMPUTATIONAL-3 構文検査されますが、実行には影響しません
BINARY:
  PIC S9(1) 〜 PIC S9(4)
レコードの先頭から 2 の倍数位置にデータ項目を位置合わせします
BINARY:
  PIC S9(5) 〜 PIC S9(9)
レコードの先頭から 4 の倍数位置にデータ項目を位置合わせします
BINARY:
  PIC S9(10) 〜 PIC S9(18)
レコードの先頭から 8 の倍数位置にデータ項目を位置合わせします
COMPUTATIONAL-4 USAGE BINARY の場合と同様に機能します
COMPUTATIONAL 構文検査されますが、実行には影響しません
INDEX 使えません
POINTER レコードの先頭から 16 の倍数の位置にデータ項目を位置合わせします
PROCEDURE-POINTER USAGE POINTER の場合と同様に機能します

基本項目の長さが、SYNCHRONIZED 文節によって影響を受けることはありません。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]