8

.sql約22,000行のファイルのファイルがあります。これは他の何かによって生成されますが、基本的には1行に1つの更新ステートメントが含まれています。

SQL Server Management Studioでファイルを実行すると、このエラーが発生します。

このクエリを実行するには、リソースプール「内部」にシステムメモリが不足しています

このクエリファイルを分割する必要があると思いますが、それを実行するための最良の方法がわかりません。ファイルを2000行のチャンクまたは私が推測する何かにカットすることができます。

これは単純な問題のように思えますが、私はこれを何度も繰り返して、良い解決策を考え出したいと思います。何か案は?

4

5 に答える 5

5

SSMS GUI インターフェイスを使用する代わりに、SQLCMDを介してスクリプトを実行することを検討することをお勧めします。

于 2012-04-20T20:28:16.693 に答える
4

同様の問題があり、ブログのコマンドプロンプトで以下のコマンドを実行すると救われました。

   sqlcmd -S YOURSQLSERVER\INSTANCENAME -i "C:\Your Script.sql"
于 2015-07-17T08:23:03.497 に答える
3

SQL Management studio で実行したときに同じ問題が発生しました。コマンド ライン osql –S localhost –d mydb –E –i .\hugescript.sql で実行しました。

http://tutewall.com/cannot-execute-script-insufficient-memory-error-sql-server/

于 2012-09-24T02:49:52.833 に答える
3

おそらくバッチ サイズの制限に達しているため、SQL Server でバッチの解析に問題が発生しています。約 5000 行のチャンク (ハイライト、実行) で実行できる場合、それは私の理論を確認します。

正しいバッチサイズが分かったら、次のいずれかを実行できます。

  1. 間に GO ステートメントを挿入して、新しいバッチを強制します
  2. 複数のファイルに分割

どちらの場合も、シェル スクリプトを少し作成するだけで十分です。splithead、およびtailUnxUtilsが役立つはずです。

于 2012-04-20T20:45:56.253 に答える
0

このソリューションを使用すると、サーバーにより多くのメモリを割り当てることができます。

  1. オブジェクト エクスプローラーでサーバーを右クリックし、 [プロパティ] を選択します。
  2. [メモリ] ノードをクリックします。
  3. [サーバー メモリ オプション] で、[最小サーバー メモリ] と [最大サーバー メモリ] に必要な量を入力します。

デフォルトの最大値は 2147483647 です。それを 9147483647 に変更すると、問題は解決しました。

于 2015-07-21T16:33:29.343 に答える