Hitachi

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


4.7.5 注意事項

  1. ブロック転送機能では,1回の転送行数を多くすることで通信オーバヘッドが減少するので検索時間を短縮できますが,所要メモリが増加するので使用時には注意が必要です。クライアント環境定義PDBLKBUFFSIZEを指定すると,通信バッファに使用するメモリサイズを一定値以下に抑えられます。ただし,値が小さ過ぎると,通信回数が削減されないため,ブロック転送機能の効果がなくなります。

  2. 問合せ式での検索結果のうち,先頭からn行だけの検索結果を必要とする場合にブロック転送機能を適用すると,n行が「1回の通信で転送する行数」に示す行数未満の場合は,不要な検索結果も取得するため,検索性能が劣化するおそれがあります。その場合は,LIMIT句を指定して,必要な行数だけを取得するようにしてください。詳細は,「先頭からn行の検索結果を取得する機能」を参照してください。

  3. 次の事象が発生した場合,検索処理を中断して,それまでに検索したデータを返します。

    • 検索中に警告エラーが発生した場合(警告情報とそれまでに検索したデータを返します)

    • リストを介した検索で,リスト作成時にあった行が削除,又は属性値が削除,更新された場合(該当する事象を示すリターンコードの情報(SQLCODE=+110)とそれまでに検索したデータを返します)

    注※

    警告エラーが発生しても検索処理を中断しない場合があります。中断しない場合,指定行数まで検索処理を続けて,検索中に発生したすべての警告エラーの情報と検索データを返します。

  4. ブロック転送機能を使用していて,一つのカーソルの検索結果を複数のFETCH文で受け取る場合,それぞれのFETCH文には同じ埋込み変数を指定するか,又は同じ属性の埋込み変数を指定してください。異なる属性の埋込み変数で検索結果を受け取ろうとするとエラーになります。

  5. ブロック転送機能適用時,HiRDBサーバから複数行取得した場合に暗黙的ロールバックとなるエラーが発生すると,アプリケーションにはHiRDBサーバからの複数行取得終了後の初回検索結果取得時にエラーを返却します。アプリケーションのデバックなどでエラー発生行を正確に受け取りたい場合は,ブロック転送機能を適用しないでアプリケーションを実行してください。

    ブロック転送機能の適用有無による暗黙的ロールバックエラーの返却タイミングを次の図に示します。

    図4‒59 ブロック転送機能の適用有無による暗黙的ロールバックエラーの返却タイミング

    [図データ]