バッファ・マネージャのスラッシングの回避
170 Sybase IQ
バッファ・サイズを設定するときは、次のトレードオフに注意してください。
• Sybase IQ バッファ・キャッシュが大きすぎると、Sybase IQ が全メモリを
使用しようとするため、オペレーティング・システムでページングが強制
的に行われる。
• Sybase IQ バッファ・キャッシュが小さすぎると、Sybase IQ はクエリ・
データをキャッシュに収めきれないため、スラッシングしてしまう。
深刻なパフォーマンスの問題が発生した場合は、ページングをモニタリングし
て、スラッシングが問題かどうかを確認してください。スラッシングが問題
だった場合は、「バッファ・キャッシュの管理」の説明に従って、バッファ・
サイズをリセットしてください。
ページングをモニタリングして、スラッシングが問題と判断した場合は、ハッ
シュ・アルゴリズムを伴うクエリが含まれる文の実行時のスラッシングの量を
制限することもできます。HASH_THRASHING_PERCENT データベース・オ
プションを調整し、許容するハード・ディスク I/O の割合を制御します。この
割合を超えると、文がロールバックされてエラーが返されます。
HASH_THRASHING_PERCENT のデフォルト値は 10% です。
HASH_THRASHING_PERCENT の値を増やすと、ロールバックが起きるま
でに許容するディスクへのページングが増え、HASH_THRASHING_PERCENT
の値を減らすと、ロールバックが起きるまでに許容するページングが減ります。
以前のバージョンの Sybase IQ では実行されていた、ハッシュ・アルゴリズムを
伴うクエリが、デフォルトの HASH_THRASHING_PERCENT の制限に達すると
ロールバックされるようになります。Sybase IQ は Hash insert thrashing
detected または Hash find thrashing detected エラーをレポートしま
す。実行に必要なリソースをクエリに割り当てるには、次の 1 つ以上の対応策を
講じてください。
• HASH_THRASHING_PERCENT の値を増やし、ページングの制限を緩和
します。
• テンポラリ・キャッシュのサイズを増やします (DBA のみ )。テンポラリ・
キャッシュのサイズを増やすと、メイン・キャッシュのサイズが減ること
に注意してください。
• Sybase IQ がこの文の 1 つ以上のハッシュ・サイズの見積もりを誤ってい
る原因を突き止めて改善します。たとえば、LF または HG インデックス
を必要とするすべてのカラムにそれがあるかどうかを確認します。また、
複数カラムのインデックスが適切かどうかも検討します。
• データベース・オプション HASH_PINNABLE_CACHE_PERCENT の値
を減らします。
これらのデータベース・オプションの詳細については、『Sybase IQ リファ
レンス・マニュアル』の「第 2 章 データベース・オプション」の
「HASH_THRASHING_PERCENT オプション」と
「HASH_PINNABLE_CACHE_PERCENT オプション」の項を参照してくだ
さい。