データを同期させるとどのような利点があるのでしょうか。 データを同期した場合の利点として、アクセス可能度の点でパフォーマンスが向上します。 欠点は、レコード・サイズが大きくなる (充てん文字スペースがレコードの一部を占める) ために一部のストレージが無駄になることです。
同期化を指定してもしなくても、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 文節によって影響を受けることはありません。