Oracle初心者の為、このような見積もりができるのか分からず投稿させて頂いております。
先日、Orale10gのデータベースでシステム構築している環境にて、Oracleツールを使用して、複雑なSQLを発行した際に、ORA-04031:共有メモリ割り当てエラーが発生しました。
原因としては、複雑なSQL(UNIONやSQL関数の多用)であること、また、SELECTの抽出される対象件数が膨大だったことになるのですが、ORACLEツールを使用してデータを
抽出する際に、閾値を設けることができないかと考えています。
イメージとしては、COUNT(キー項目)文で対象件数や処理時間を確認し、目安を超えている場合は、SQLを改善して実行するという流れです。
当然、サーバのスペック、発行するSQLの違い、使用状況の違いによって、値が変動することは分かっており、むずかしいとは思っております。
只、運用上の目安の制限という位置付けのため、SQLの実行計画の変動は抜きにした形で、OracleのSGAに割り当てているメモリ、CPUなどで出せないものかと思ってます。
ご教授の程よろしくお願い致します。