SQLを変更せずにソートをチューニングする方法

大量データのソートには時間がかかります。しかし驚異的に遅くなる場合があります。その場合の対処方法になります。

 データのソートは通常メモリ上で処理されます。しかし、大量データを扱う場合にメモリ内に収まらない場合、一時表領域をワーク領域として利用し処理します。一時表領域は通常のテーブルと同じくディスク領域になり、メモリ>>ディスクとなりメモリでの処理に比べ急激に処理時間が遅くなります。

 あるとき夜間バッチ処理が急激に遅くなる場合などは時間の経過と共にデータ量が増えメモリ上で処理しきれなくなったことが原因である場合があります。これを簡単に解決する方法があります。

大量データのソートを高速化する方法

 セッション単位に割り当てるメモリサイズの拡張です。

ALTER SESSION SET WORKAREA_SIZE_POLICY = MANUAL;
ALTER SESSION SET SORT_AREA_SIZE = 2147483647;