• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一時表領域の見積)

一時表領域の容量不足とは?見積もれるのか?

このQ&Aのポイント
  • 納品したWebシステムの性能試験で、一時表領域の容量不足というSQLエラーが発生しました。リサイズしても状況は変わらず、修正を行いましたが、一時表領域容量の見積もりが必要です。
  • 一時表領域は自動拡張なしの設定であり、Webシステムの各機能ごとに一時表領域の拡張を監視し、最終的な最大値を調査しました。結果は400MBであり、複数ユーザで並列に使用することを考慮するとこれが適切か確認する必要があります。
  • 一時表領域容量の見積もりが可能かどうかは不明です。ユーザには現在の修正状況を説明し、可能ならば見積もりの方法についても調査する必要があります。もし見積もりができない場合は、他の対策や回答を提案することが必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • MZ-80B
  • ベストアンサー率56% (46/81)
回答No.2

#1 です 一時表領域を使用する全てのアクセスパスはわかりません おそらく大量に存在するでしょう。 その仕組み上からインラインビューや分析関数、マージジョインなどが大量消費する代表です。 EXPLAIN PLAN を使って調べればわかります。

その他の回答 (1)

  • MZ-80B
  • ベストアンサー率56% (46/81)
回答No.1

最大400MBというのは1セッションによる調査結果ということですね。 性能評価と同じデータで評価している前提で、かつ、 400MBの一時領域を使用するSQLが同時に呼び出されるのであれば 400MB×平均同時セッション数×データの増加係数 は必要でした・・とユーザに謝ります。 (同時セッション数=並列に使用するユーザ数) いつまで拡張なしに稼動できるかはユーザと相談してください。 事前に平均レコード長、総レコード数、増加レコード数 などの容量見積もり作業はしていましたか? 大容量になる場合、いきなり xxx GB必要です。 と数値だけ言われても相手は納得してくれないでしょう。 あと もし一時表領域の縮小の問題が解決できているのなら 親切にフォローもついていますので放置しておくのはどうかと思います

real_neo
質問者

お礼

回答ありがとうございます。 やはりセッション数に比例するんですね。 予想通りでした。 ユーザが想定する最大同時セッション数は1000だそうで、それだと400GBも必要になります。 ただ、400MBという結果報告に対して、「もう少しSQLを修正して」とか「ではxxxGBにしておきます」のような回答はまだ来ていません。 SQLはもう修正の余地があまり残されていません。 サブクエリを削除してSQLを単純化し、その代わりにSQLの発行回数を増やして、画面で必要なデータを形成するといった方法しかありませんが、それだとシステム全体のパフォーマンスを考慮しなくてはならなくなって、話が大きくなります。 ちなみに、一時表領域が使用される仕組みはご存知でしょうか? 私の場合、メモリソートができないときに使用するとか、サブクエリの結果を展開しておくために使用するくらいしか知りません。 使用量はサブクエリの結果のレコード件数に比例しますか?

関連するQ&A