Hitachi

ノンストップデータベース HiRDB Version 10 UAP開発ガイド


3.4.13 インデクスキー値の排他資源の作成方法

インデクスのキー値が10バイトを超えた場合,システム定義のpd_key_resource_typeオペランドの指定値によって,作成されるインデクスキー値の排他資源が変わります。システム定義のpd_key_resource_typeオペランドについては,マニュアル「HiRDB システム定義」を参照してください。

pd_key_resource_typeオペランドにTYPE1を指定した場合の,キー値排他資源の作成方法を次の図に示します。

図3‒23 pd_key_resource_type=TYPE1のキー値排他資源の作成方法

[図データ]

[説明]

キー長が10バイトを超えると,キー値の先頭2バイトと下位1バイトを除いた長さを7バイト単位で切り出し,ビットシフトしながら排他的論理和をします。ビットシフトは,切り出した回数を8で割った余りの数で論理シフトし,8バイトデータの排他的論理和をします。

排他的論理和の結果(中間結果)は,8バイトの領域に格納し,先頭1バイト(X)と下位1バイト(Y)の排他的論理和をして,7バイト分のデータ(結果)を作成します。

この7バイト分のデータ(結果)と,最初に除いた先頭2バイトと下位1バイトとを合わせた,10バイトのデータがインデクスキー値の排他資源となります。

pd_key_resource_typeオペランドにTYPE2を指定した場合の,キー値排他資源の作成方法を次の図に示します。

図3‒24 pd_key_resource_type=TYPE2のキー値排他資源の作成方法

[図データ]

[説明]

キー長が10バイトを超えると,キー値の先頭2バイトと下位1バイトを除いた長さを7バイト単位で排他的論理和をします。排他的論理和の結果の7バイトデータと先頭2バイト,下位1バイトを合わせた10バイトのデータがインデクスキー値の排他資源となります。