2011-07-15 35 views
1

このエラーのトラブルシューティングを効率的に行うにはどうすればよいですか?SQL Serverスタックオーバーフローエラーのトラブルシューティング

クエリの最適化中にクエリプロセッサにスタック領域が不足しました。 クエリを簡略化してください。

メッセージ8621、レベル17、状態2

私はプロファイリングを結合させることを試みたが、私は私が選択した権利メッセージがあるかわかりません。私はそこにエラーが表示されます。見積もられた実行計画は、このエラーも示します。

私が呼んでいるsprocは、テーブルの上に実際に簡単なUPDATEを実行しています。 1つのUPDATEトリガーがありますが、私はそれを無効にしましたが、まだ私にこのエラーを与えています。私は同じUPDATEステートメントを出して、値を手入力しました。それは速く戻らず、それでも私にエラーを与えます。

編集: OK、私の生成されたスクリプトは、PKを設定しています。だから私はPKと別の列を設定すると、私はこのエラーが発生します。それらの行に沿った提案はありますか?

+0

これを再現するために使用できるDDLを指定してください。テーブル上の任意の外部キー? –

+0

なぜ-1? –

+0

@ダニエル - 理由は-1ですが、私はあなたにもそれを+1します。 – JNK

答えて

0

多くのFKがこのPKによって参照されています。私はそのPKをそれ以上更新しないようにコードを変更しました。

3

There's a microsoft KB article about this.

基本的にはバグだとあなたは、更新する必要があります。私はあなたがSQL Server 2005 sp2を実行していると仮定していますか?

+0

私は 'Microsoft SQL Server 2005 - 9.00.3080.00(Intel X86)'を実行しています。そのバージョンが影響を受けるかどうかは不明です。編集:OKそれはsp2です。 –

+0

また、私のクエリは「非常に複雑」ではありません。 –

+0

再帰はありますか?サーバー上で何か他のものが実行されていますか? – JNK

0

これは必ずしもバグではありません。ダニエルのような音は、彼がもともと考えていたほど単純ではないという結論に至りました。

This articleは、ダニエルが持っていたものと同様の質問に答えるようです。私は別の(正当な)理由でも同じエラーに遭遇しました。予期しないデータを持つデータベースで動的SQLを実行すると、何百ものテーブルを持つ単一のselect文が発生します。

+1

このリンクは質問に答えるかもしれませんが、リンクが死んだ場合のためにリンクの内容を含めることが最善です。 – JNYRanger

関連する問題