1.3 インメモリデータ処理を適用すると効果が期待できるケース
次の場合にインメモリデータ処理を適用すると効果が期待できます。
-
処理時間の長いバッチ処理を実行している場合
大量のデータ更新を行う,処理時間の長いバッチ処理にインメモリデータ処理を適用すると,効果が期待できます。また,ログレスモードを適用すると,さらに処理時間を短縮できます。
バッチ処理に掛かる時間が長いほど,ディスク入出力回数に差が出るため,インメモリデータ処理を適用したときの効果が期待できます。
-
複数のバッチ処理を連続して実行している場合
複数のバッチ処理を連続して実行する場合にインメモリデータ処理を適用すると効果が期待できます。
バッチ処理を連続して行うほど,ディスク入出力回数に差が出るため,インメモリデータ処理を適用したときの効果が期待できます。
-
グローバルバッファの排他競合が原因で性能が上がらない場合
グローバルバッファの排他競合が原因で性能が上がらない場合に,インメモリデータ処理を適用すると性能向上が期待できます。
グローバルバッファを使用する場合(インメモリデータ処理を使用しない場合),参照または更新処理の発生時,グローバルバッファ上にデータがキャッシュされているかどうかを検索する処理(キャッシュサーチ処理)が行われます。このとき,グローバルバッファの全ページに対して排他が掛かるため,ほかの参照または更新処理は排他待ちとなります。インメモリデータ処理の場合は,インメモリデータバッファ上に全データがキャッシュされているため,キャッシュサーチ処理が発生しません。グローバルバッファの全ページに対する排他制御がなくなるため,同時実行性の向上が見込まれ,その分性能向上が期待できます。例えば,同じグローバルバッファを割り当てている複数のRDエリアを更新するバッチ処理などで排他競合が多発している場合に,インメモリデータ処理を適用すると性能向上が期待できます。
なお,排他競合の発生頻度については,統計解析ユティリティのグローバルバッファに関する統計情報で確認できます。
-
メインフレームからデータを移行する場合
メインフレームの膨大なデータをHiRDBに移行する場合(データをHiRDBのデータベースにデータロードする場合)に,インメモリデータ処理を適用すると効果が期待できます。
- 参考
-
インメモリデータ処理はユティリティにも適用できます。データロードや表の再編成など,処理時間の長いユティリティを実行する場合にも,効果が期待できます。