ここではORACLEデータベースのSQLで、SQL本文を変更せずにソート処理をチューニングする方法を紹介しています。
SQLのソート処理の発生原因やチューニング方法は↓でも紹介していますので参考にしてください。
>>【SQL】レスポンスを遅くするソート処理が発生する原因
>>【SQL】ソート処理が遅いときのチューニング方法
SQLを変更せずにソートをチューニングする方法
大量データのソートには時間がかかります。しかし驚異的に遅くなる場合があります。その場合の対処方法になります。
データのソートは通常メモリ上で処理されます。しかし、大量データを扱う場合にメモリ内に収まらない場合、一時表領域をワーク領域として利用し処理します。
一時表領域は通常のテーブルと同じくディスク領域になり、メモリ>>ディスクとなりメモリでの処理に比べ急激に処理時間が遅くなります。
あるとき夜間バッチ処理が急激に遅くなる場合などは時間の経過と共にデータ量が増えメモリ上で処理しきれなくなったことが原因である場合があります。これを簡単に解決する方法があります。
大量データのソートを高速化する方法
大量データのソートを高速化するには、セッション単位に割り当てるメモリサイズを拡張することが有効です。
ALTER SESSION SET WORKAREA_SIZE_POLICY = MANUAL;
ALTER SESSION SET SORT_AREA_SIZE = 2147483647;
最後に
最後までお読みいただきありがとうございます。
SQLのチューニング方法は↓で紹介していますので参考にしてください。
>>SELECT文のSQLチューニング方法まとめ