none
【app】【エラー】【イベントID:8623】【MSSQL$XXX】クエリ プロセッサの内部リソースの不足により、クエリ プランを作成できません。 RRS feed

  • 質問

  • いつも大変お世話になっております。

    掲題の件につきまして、ご回答頂けないでしょうか。

    以下のイベントが単発で発生しました。
    ---------------------------------------
    [app]
    [エラー]
    [MSSQL$XXXX]
    [8623]
    クエリ プロセッサの内部リソースの不足により、クエリ プランを作成できません。
    これはまれなイベントで、非常に複雑なクエリ、または非常に多数のテーブルまたはパーティションを参照するクエリに限り発生します。
    クエリを簡単にしてください。
    このメッセージがエラーにより表示されたと考えられる場合、詳細についてはご購入元に問い合わせてください。
    ---------------------------------------

    特にSQLにおいてサービス影響が発生した等の認識はありません。
    メッセージ通り何らかの原因によりリソース不足が発生し出力されたイベントとの認識で宜しいでしょうか。
    また、単発での発生の場合は静観対応で問題無いでしょうか。

    一般的な観点での回答で構いませんので、ご返信いただければ幸いです。

    以上、よろしくお願いいたします。


    2021年4月7日 0:23

回答

  • エラー 8623 は、エラー内容に記載があるとおり、複雑なクエリに対してクエリの実行プランを生成するフェーズで、実行プランの生成のために用意されたリソースの範囲で最適な実行プランを生成することが出来なかった場合に発生しうるエラーだったと思います。
    クエリの実行プランの生成には、クエリの条件句、結合句、統計情報の状態に大きく影響を受けるかと思いますが、エラー 8623 が頻繁に発生していないのであれば、静観して問題ないと思います。

    同じクエリで 頻繁に エラー 8623 が発生する場合は、該当クエリのスリム化、クエリヒント句、結合ヒント句を追加するなどの対策を検討し、エラー 8623 の発生を軽減できるかを確認されると良いかと思います。

    クエリのスリム化とは、例えば IN句に大量の条件が指定されている場合、条件の内容を一時テーブルに挿入し、結合するようにクエリを書き換えるなどの工夫をしたり、結合するテーブルが多い場合、クエリを分割することが出来ないか (例えば、ストアドプロシージャ化する中でクエリを分割するなど) 検討したりすることになります。

    • 回答としてマーク blankey3104 2021年4月8日 0:34
    2021年4月7日 14:07

すべての返信

  • エラー 8623 は、エラー内容に記載があるとおり、複雑なクエリに対してクエリの実行プランを生成するフェーズで、実行プランの生成のために用意されたリソースの範囲で最適な実行プランを生成することが出来なかった場合に発生しうるエラーだったと思います。
    クエリの実行プランの生成には、クエリの条件句、結合句、統計情報の状態に大きく影響を受けるかと思いますが、エラー 8623 が頻繁に発生していないのであれば、静観して問題ないと思います。

    同じクエリで 頻繁に エラー 8623 が発生する場合は、該当クエリのスリム化、クエリヒント句、結合ヒント句を追加するなどの対策を検討し、エラー 8623 の発生を軽減できるかを確認されると良いかと思います。

    クエリのスリム化とは、例えば IN句に大量の条件が指定されている場合、条件の内容を一時テーブルに挿入し、結合するようにクエリを書き換えるなどの工夫をしたり、結合するテーブルが多い場合、クエリを分割することが出来ないか (例えば、ストアドプロシージャ化する中でクエリを分割するなど) 検討したりすることになります。

    • 回答としてマーク blankey3104 2021年4月8日 0:34
    2021年4月7日 14:07

  • NOBTA 様

    詳細なご回答有難うございます。
    大変参考になりました。

    参考にさせて頂きます。

    2021年4月8日 0:38