FIX Transact SQL カー虚マ数を使用して大きなイテレーションがある操作を実行すると、メモリ リークが発生が SQL Server 2000 で発生します。

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:837957
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
# をバグ: 471233 (SQL Server 8.0)


Microsoft SQL Server 2000年修正プログラムのいずれかの配布します。ダウンロード可能なファイルです。修正プログラムは累積的であるため、新しいリリースが含まれています。すべての修正プログラムに含まれていたすべてのソフトウェア更新プログラムは、SQL Server 2000年ソフトウェア更新。
現象
時Transact SQL カー虚マ数を使用している大規模な操作を実行するには繰り返し、次の現象があります。
  • SQL Server を実行しているコンピューター上の操作を実行するクライアント次のようにメモリ不足エラーを返すことがあります。

    エラー メッセージ 1

    エラー メッセージ701: がメモリ不足のため実行クエリです。
    エラー メッセージ 2

    SQL Server のメッセージ 1204年: ことはできません。この時点でロックされているリソースを取得します。少ない場合、ステートメントを再実行してください。アクティブなユーザーか、SQL Server ロックを確認するのには、システム管理者に問い合わせてください、メモリ構成です。
    エラー メッセージ 3

    Msg 17803:使用可能なメモリが不足しています。
  • SQL Server 2000年を実行しているコンピューターからの応答低速になる可能性があります。
  • DBCC FREEPROCCACHE Transact-SQL ステートメントでメモリを解放していない可能性がありますか、プロシージャ キャッシュをオフに可能性がありますいません。でも、SQL Server を実行しているコンピューターからクライアントを切断する場合この現象が発生する可能性があります。
原因
この現象は、カー虚マ数で使用されているリソースが解放されていないために発生します。
回避策
この問題を回避するには、カーソル変数に割り当てられているリソースを解放する必要があります。これを行うには、次のことを確認する必要があります。
  • カー虚マ数を設定するのには、Transact SQL を設定するステートメントを使用すると、Transact-SQL の割り当てを解除するステートメントを使用して、カーソルが不要になったときに、カーソルが使用されているリソースを解放する必要があります。
  • カー虚マ数を開くには、Transact SQL を開くステートメントを使用すると、閉じる Transact SQL ステートメントを使用して、カーソルが不要になったときに、カーソルが使用されているリソースを解放する必要があります。
解決方法

サービス パックの情報

この問題を解決するには、Microsoft SQL Server 2000年用の最新の service pack を入手します。詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
290211 SQL Server 2000年の最新の service pack を入手する方法

修正プログラムの情報

この修正プログラムの日本語版します。ファイル属性 (またはそれ以降) 次の表に記載されています。は、日付および時刻これらのファイルを世界協定時刻 (UTC) が表示されます。ファイル情報を表示すると、ローカル時刻に変換します。検索するのにはUTC および現地時間、使用の違いを タイム ゾーン タブ コントロール パネルの日付と時刻ツールでします。
   Date         Time   Version            Size    File name   --------------------------------------------------------------------   31-May-2003  05:15  2000.80.818.0      78,400  Console.exe         27-Oct-2003  14:51  2000.80.873.0     315,968  Custtask.dll        30-Jan-2004  02:59  2000.80.911.0      33,340  Dbmslpcn.dll        24-Apr-2003  12:42                    786,432  Distmdl.ldf   24-Apr-2003  12:42                  2,359,296  Distmdl.mdf   29-Jan-2003  12:25                        180  Drop_repl_hotfix.sql   11-Sep-2003  13:56  2000.80.859.0   1,905,216  Dtspkg.dll          26-Aug-2003  06:46  2000.80.854.0     528,960  Dtspump.dll         23-Jun-2003  09:10  2000.80.837.0   1,557,052  Dtsui.dll           23-Jun-2003  09:10  2000.80.837.0     639,552  Dtswiz.dll          23-Apr-2003  13:21                    747,927  Instdist.sql   02-May-2003  12:26                      1,581  Inst_repl_hotfix.sql   30-Jan-2004  02:59  2000.80.911.0      90,692  Msgprox.dll         31-Mar-2003  12:37                      1,873  Odsole.sql   30-Jan-2004  02:59  2000.80.911.0      62,024  Odsole70.dll        30-Jan-2004  02:59  2000.80.911.0      25,144  Opends60.dll        30-Jan-2004  02:59  2000.80.911.0      57,904  Osql.exe            02-Apr-2003  09:45  2000.80.797.0     279,104  Pfutil80.dll        04-Aug-2003  04:47                    550,780  Procsyst.sql   11-Sep-2003  11:07                     12,305  Qfe469315.sql   22-May-2003  09:27                     19,195  Qfe469571.sql   29-Jan-2004  11:47                  1,090,380  Replmerg.sql   30-Jan-2004  02:59  2000.80.911.0     221,768  Replprov.dll        30-Jan-2004  02:59  2000.80.911.0     307,784  Replrec.dll         29-Jan-2004  09:54  2000.80.911.0     159,813  Replres.rll   05-Sep-2003  10:30                  1,087,150  Replsys.sql   13-Aug-2003  02:58                    986,603  Repltran.sql   30-Jan-2004  02:59  2000.80.911.0     287,304  Rinitcom.dll        30-Jan-2004  02:59  2000.80.911.0      57,916  Semnt.dll           29-Jul-2003  06:43  2000.80.819.0     492,096  Semobj.dll          31-May-2003  04:57  2000.80.818.0     172,032  Semobj.rll   02-Jan-2004  06:12  2000.80.904.0      53,832  Snapshot.exe        09-Dec-2003  06:37                    117,834  Sp3_serv_uni.sql   04-Feb-2004  11:16  2000.80.913.0      28,672  Sqlagent.dll        04-Feb-2004  11:17  2000.80.913.0     311,872  Sqlagent.exe        19-Feb-2004  04:32  2000.80.916.0     168,001  Sqlakw32.dll        30-Jan-2004  02:59  2000.80.911.0   4,215,360  Sqldmo.dll          07-Apr-2003  04:14                     25,172  Sqldumper.exe       29-Jan-2004  09:47  2000.80.911.0      28,672  Sqlevn70.rll   30-Jan-2004  02:59  2000.80.911.0     180,792  Sqlmap70.dll        02-Sep-2003  13:26  2000.80.857.0     188,992  Sqlmmc.dll          02-Sep-2003  09:33  2000.80.857.0     479,232  Sqlmmc.rll   21-Oct-2003  10:38  2000.80.871.0     401,984  Sqlqry.dll          30-Jan-2004  02:59  2000.80.911.0      57,920  Sqlrepss.dll        01-Mar-2004  10:33  2000.80.919.0   7,618,641  Sqlservr.exe        30-Jan-2004  02:59  2000.80.911.0     590,396  Sqlsort.dll         30-Jan-2004  02:59  2000.80.911.0      45,644  Sqlvdi.dll          30-Jan-2004  02:59  2000.80.911.0     106,588  Sqsrvres.dll        30-Jan-2004  02:59  2000.80.911.0      33,340  Ssmslpcn.dll        30-Jan-2004  02:59  2000.80.911.0      82,492  Ssnetlib.dll        30-Jan-2004  02:59  2000.80.911.0      25,148  Ssnmpn70.dll        27-Oct-2003  14:51  2000.80.873.0     123,456  Stardds.dll         30-Jan-2004  02:59  2000.80.911.0     158,240  Svrnetcn.dll        30-Jan-2004  02:59  2000.80.911.0      76,416  Svrnetcn.exe        30-Apr-2003  10:22  2000.80.816.0      45,132  Ums.dll             30-Jan-2004  02:59  2000.80.911.0      98,872  Xpweb70.dll      
メモ ファイルの依存関係、最新の修正プログラムまたは機能のためのこれらを含むファイルにはその他ファイルです。
状況
マイクロソフトこれに記載されているマイクロソフト製品の問題であることを確認していますこの資料の「対象」] セクションで。

この問題は、最初 Microsoft SQL Server 2000 Service Pack 4 で修正済みです。
詳細
「現象」に記載されている現象が発生する場合、カー虚マ数を設定し、同じカー虚マ数に再利用します。カーソル変数で使用されているリソースを解放します。たとえば、次のストアド プロシージャを考えてみます。
CREATE PROCEDURE MYPROCBEGIN    DECLARE @CURSOR CURSOR    SET @CURSOR = CURSOR FOR SELECT * FROM AUTHORS     -- FIRST ASSIGNMENT (THIS ASSIGNMENT LEAKS WHEN A SECOND ASSIGNMENT TAKES PLACE WITHOUT DEALLOCATION)        --Other Transact-SQL statements        SET @CURSOR = CURSOR FOR SELECT * FROM AUTHORS    --  SECOND ASSIGNMENT        --Other Transact-SQL statementsEND

このストアド プロシージャを実行すると、メモリ不足のエラー メッセージを受け取ることがあります。この問題を解決するには、ストアド プロシージャのコードは次のとおり変更する必要があります。
CREATE PROCEDURE MYPROCBEGIN    DECLARE @CURSOR CURSOR    SET @CURSOR = CURSOR FOR SELECT * FROM AUTHORS     -- FIRST ASSIGNMENT    --Other Transact-SQL statements    DEALLOCATE @CURSOR --DEALLOCATING THE CURSOR VARIABLE BEFORE A SECOND ASSIGNMENT    SET @CURSOR = CURSOR FOR SELECT * FROM AUTHORS    --  SECOND ASSIGNMENT    --Other Transact-SQL statements    DEALLOCATE @CURSOR --DEALLOCATING THE CURSOR VARIABLE THAT WAS ASSIGNED SECONDEND
関連情報
ソフトウェア更新プログラムの詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
824684標準の説明マイクロソフトのソフトウェア更新プログラムの説明に使用される用語
関連の問題のメモリの詳細については、マイクロソフト サポート技術記事を表示するのには、次の資料番号をクリックします。
810052[FIX] 接続中にカーソルが開かれると、メモリ リークが発生します。
818095 FIX 仮想メモリが不足するとカーソル プランがキャッシュから削除されません。
820773 FIX JDBC ドライバー サーバー カーソルをリークします。
271624 INF: を使用してSQL Server メモリ使用量を監視するのには、DBCC MEMORYSTATUS

プロパティ

文書番号:837957 - 最終更新日: 12/08/2015 06:32:27 - リビジョン: 5.0

  • kbnosurvey kbarchive kberrmsg kbbug kbfix kbsqlprog kbtsql kbqfe kbmemory kbsqlserv2000presp4fix kbquery kbhotfixserver kbmt KB837957 KbMtja
フィードバック