Oracle 11g 並列クエリの制限を調べる
Oracle 11g が特定の SQL クエリに複数の CPU を利用しないという問題については、次の点を理解することが重要です。 Oracle の並列処理の複雑さ。これを最適化するには、さまざまな要素についての十分な知識と慎重な分析が必要です。
適切な調査
並列処理のトラブルシューティングを行う場合は、次の質問を考慮してください。
- リクエストされた並列サーバーの数は何ですか?
- リクエストされた並列サーバーの数は何ですか?割り当てられていますか?
- 効率的に使用された並列サーバーの数は?
効果的なツール
-
アクティブ レポートによる SQL モニタリング: 各実行ステップに関する詳細情報を提供し、並列処理の使用法と可能性を明らかにします。 bottlenecks.
-
explain plan for ... and select * from table(dbms_xplan.display);: クエリ プランを分析し、並列処理が適用されなかった理由を説明するメモを含みます。
影響を与える要因並列処理
割り当てられる並列サーバーの数は、次のようなさまざまな要因によって決まります。
- オペレーション間の並列処理 (並べ替え、グループ化など)
- クエリ ヒント
- 再帰 SQL
- セッションの変更パラメータ
- テーブルとインデックスの次数
- オプティマイザのコストに関する考慮事項
- プラン管理メカニズム
- Oracle のエディションとライセンス
- システム パラメータ (例: PARALLEL_ADAPTIVE_MULTI_USER、 PARALLEL_DEGREE_LIMIT)
- CPU 数とシステム負荷
- 並列 DML の制限
- バグと解析の問題
トラブルシューティング方法
トラブルシューティングを行うには特定のクエリについては、次のことを試してください:
-
Explain Plan Notes を確認してください: 並列処理が要求されなかった理由を探します。
-
SQL モニタリングの分析レポート: 遅いステップと並列処理の使用状況を特定します。
-
システムを調整しますパラメータ: PARALLEL_DEGREE_LIMIT や PARALLEL_MIN_SERVERS などのパラメータの変更を検討してください。
-
並列ヒントを有効にする: ステートメント レベルまたはオブジェクト レベルのヒントを使用して並列処理を明示的に要求します。
-
非平行を除外オブジェクト: オブジェクト レベルの noParallel ヒントを使用して、特定のテーブルに対してシリアル実行を強制します。
-
並列 DML 制限の確認: クエリが並列 DML の制限に違反していないことを確認してください。 .
並列処理は微妙な機能であり、最適化するには徹底的な調査と理解が必要であることを覚えておいてください。効果的に。
以上がOracle 11g クエリが複数の CPU を使用しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。