SQL Server 2012で大量のSQLクエリを実行すると、システムディスクのスペースが不足する


14

私はSQL Server 2012を初めて使用します。誰かが助けてくれればありがたいです。巨大なデータベースのコピーをSQL Server 2012に復元し、それに対していくつかの簡単なクエリを実行しようとしました。

136898115行のデータベーステーブルに対してSELECTクエリを実行しようとしています。このSELECTクエリには単純なWHERE句のみがあります。このクエリを実行するたびに、システムディスク(Windowsがインストールされているパーティション- C:\)の領域が不足するため(このパーティションには6GBの空き領域しかないため)失敗し、その理由はわかりません。tempdbは、14テラバイト以上の空き領域がある別のドライブ上にあると定義しました。もちろん、私のデータベースも別のドライブにあります。

システムパーティションの容量が不足する原因は何ですか?ページファイルですか?


2
imはSSMSを実行しているシステムのスペースが不足していますが、同じマシンです。実際のSQLサーバーでSSMSを使用しています。
royv

2
一般に、SQL Server(SSMSではない)Windowsボックスで他のアプリケーションを実行しないか、最大メモリ設定が十分な空きRAMを許可するのに十分低いことを確認することをお勧めします。ここに私の答えを参照してください:dba.stackexchange.com/a/19776/2718
ジョン・シーゲル

回答:


12

SSMSクエリ結果は、デフォルトでC:ドライブにキャッシュされます。ツール\オプションに移動します。添付資料参照。これをより多くのストレージを備えた別のボリュームに変更すると、問題ありません。

ここに画像の説明を入力してください


1
[ファイルへの結果]を選択すると、デフォルトで[名前を付けて保存]ダイアログボックスが開きます。SSMSはデフォルトで結果セットをディスクに保存するとは思わないが、間違っている可能性がある。
ジョンセイゲル

1
クエリウィンドウで取得した結果は、投稿ごとにキャッシュされます。ドライブを確認し、SSMSで大規模なクエリを実行して、もう一度確認してください。特に指定しない限り、C:ドライブのストレージが失われます。
エリックヒギンズ

1
それは本当だ。私のページファイルとは関係ありません。ページファイルを別のドライブに移動しても、C:ドライブの容量が不足しました。
-royv

11

わかりました、エリックと私は正しかったです!

  • ダイアログのパスは、前述のとおり、クエリ結果を保存するためのデフォルトのパスです。
  • クエリ結果ディスクにキャッシュされます(私は間違っていました)が、ローカルプロファイルのtempフォルダー(C:\Users\<UserName>\AppData\Local\Temp私の場合はここ)にあります。チェックしましたが、このキャッシュをオフにする明白な方法はないようです。

したがって、要点は次のとおりです。

  • SQLボックスでSSMSを直接実行しないでください
  • しないSELECT *結果セットは、プロファイルフォルダ内に収めることができSSMSで巨大なテーブルからしない限り、
  • SQL Serverの最大メモリ設定が正しく構成されていることを確認します(ページファイルの増加に関して、この問題の原因となっている場合もあればそうでない場合もあります)。

7

私はちょうど同じ問題に苦しんでいます。上記の答えを読んだ後、私は次を見つけました。

ツール| オプションは答えではありません。私のクエリはY:ドライブに設定されていましたが、クエリが実行され、C:ドライブのスペースが2.9GBから5.04MBになったので(クエリを強制終了する前に)見ました。

だから私はおそらく結果をキャッシュしていると思った(それらは非常に大きく、すべての行がXMLの大きなチャンクを含んで返されるので)Jonが言ったことですが、あなたはそれをどのように変更するのか分かりませんでした。

一時ファイルが書き込まれる場所を変更するために行ったのは、環境変数を開き、ユーザー変数TEMPおよびTMP(どちらもC:\ Tempに設定されていた)を編集してZ:\ Tempに書き込むことでした。

この変更後、クエリがZ:\ Tempディレクトリに非常に大きなファイルを作成するのを確認できました。


vmのHDスペースをアップグレードし、十分なネットワークストレージを確保するために必要なプロセスがある場合に役立つ情報。ただし、ファイル転送速度のボトルネックとなるネットワークの問題がある場合、c:\クエリのパフォーマンスが低下する可能性があります。
ギブラータートップ

それは3年前のことで、当時の状況を正確に思い出すことはできません。私は今、哀れな量のRAMと処理能力を備えたラップトップを持っていますが、これは別の話です。Z:ドライブは、VM上の単なる "ローカル"ドライブであると確信しています。なぜ彼らはそれをD:またはE:とラベル付けしなかったのかはわかりませんが、その部分は私の制御の範囲外でした。だから、私にとっては実際にネットワークの問題はありませんでした。
ニックライアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.