web-dev-qa-db-ja.com

SQLクエリのディスク容量が不足しています

メッセージ1101、レベル17、状態10、行12ファイルグループ「DEFAULT」のディスク容量が不足しているため、データベース「TEMPDB」に新しいページを割り当てることができませんでした。ファイルグループにオブジェクトをドロップするか、ファイルグループにファイルを追加するか、ファイルグループ内の既存のファイルの自動拡張をオンに設定して、必要なスペースを作成します。

これは平易な英語で何を意味しますか。

12
JsonStatham

TempDBのこのような爆発的な増加の通常の原因は、アドホックまたはストアドプロシージャのいずれかで、「偶発的なクロス結合」と呼ばれる予期しない多対多の結合を含むクエリであることがわかりました。 。舞台裏では、TempDBに存在する「作業」テーブルに存在することになる数十億の内部行を作成する可能性があります。

修正は、単により多くのディスクスペースを割り当てることではありません。修正は、どのクエリが問題の原因であるかを見つけて修正することです。そうしないと、SQLServerなどを再起動しなければならないという終わりのないサイクルで立ち往生することになります。

そして、いいえ...他に設定することはできないため、TempDBが「SIMPLE」リカバリモードになっているかどうかを確認する必要はありません。試してみてください。

12
Jeff Moden

それはあなたのtempdbデータベースがいっぱいになったことを意味します

あなたはできる

  1. SQL Serverサービスを再起動します。これにより、tempdbデータベースが再作成されます。
  2. より多くのスペースがある別のディスクに別のファイルを追加します
  3. Tempdbのログファイルを縮小します

詳細については、 データベース 'TEMPDB'に新しいページを割り当てることができませんでした。ファイルグループのDEFAULTエラーメッセージで使用できるページがこれ以上ありません を参照してください。

8
SQLMenace