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

文書翻訳 文書翻訳
文書番号: 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 MYPROC
BEGIN

    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 statements

END

このストアド プロシージャを実行すると、メモリ不足のエラー メッセージを受け取ることがあります。この問題を解決するには、ストアド プロシージャのコードは次のとおり変更する必要があります。
CREATE PROCEDURE MYPROC
BEGIN

    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 SECOND

END

関連情報

ソフトウェア更新プログラムの詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
824684標準の説明マイクロソフトのソフトウェア更新プログラムの説明に使用される用語
関連の問題のメモリの詳細については、マイクロソフト サポート技術記事を表示するのには、次の資料番号をクリックします。
810052[FIX] 接続中にカーソルが開かれると、メモリ リークが発生します。
818095 FIX 仮想メモリが不足するとカーソル プランがキャッシュから削除されません。
820773 FIX JDBC ドライバー サーバー カーソルをリークします。
271624 INF: を使用してSQL Server メモリ使用量を監視するのには、DBCC MEMORYSTATUS

プロパティ

文書番号: 837957 - 最終更新日: 2011年7月18日 - リビジョン: 5.0
キーワード:?
kberrmsg kbbug kbfix kbsqlprog kbtsql kbqfe kbmemory kbsqlserv2000presp4fix kbquery kbhotfixserver kbmt KB837957 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:837957
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com