FIX SQL Server 2005 でクエリの CROSS APPLY 演算子と共に、テーブル値関数 (TVF) を使用するとエラー メッセージ:「このクエリを実行するが不足しているシステム メモリです」

文書翻訳 文書翻訳
文書番号: 924954
# をバグ: 50000224 (SQL 修正プログラム)
Microsoft Microsoft SQL Server 2005年修正プログラム 1 つのダウンロード ファイルとして配布しています。修正プログラムは累積的であるため、各新しいリリースすべての修正プログラムが含まれているし、以前の SQL Server 2005 に含まれていたすべてのセキュリティ修正プログラム リリースを修正します。
すべて展開する | すべて折りたたむ

目次

概要

次のこの修正プログラムについて説明しますリリース:
  • この修正プログラム パッケージで修正される問題
  • この修正プログラムを適用するための必要条件パッケージ
  • 適用後、コンピューターを再起動する必要があるかどうか、修正プログラム パッケージ
  • この修正プログラム パッケージが他の修正プログラムによって置き換えられますかどうかパッケージ
  • かどうかの適用後、レジストリを変更する必要があります、修正プログラム パッケージ
  • この修正プログラムに含まれているファイルパッケージ

現象

次のシナリオを検討してください。Microsoft SQL Server 2005 では、テーブル値関数 (TVF) を使用して、CROSS APPLY 演算子では、クエリで。Transact SQL、TVF または共通言語ランタイム (CLR) TVF を使用します。このシナリオでは、次のエラー メッセージが表示されます。
Msg 701、レベル 17、状態 123、2 行目
このクエリを実行するが不足しているシステム メモリがします。
通常、テーブルにクエリの左側にある多数の行を生成する場合この問題が発生します。

原因

この問題は、クエリの実行が完了するまで、TVF のパラメーターに使用されるメモリは解放されませんに発生します。TVF を CROSS APPLY 演算子と共に使用すると、1 回のクエリの実行、時は、TVF 何度でも呼び出すこと。TVF が何度も呼び出されるが大量のメモリを消費します。

解決方法

修正プログラムの情報

サポートされている修正プログラムがマイクロソフトから入手可能です。ただし、この修正プログラムはこの資料に記載されている問題のみを修正するものです。この修正プログラムはこの問題が発生しているシステムにのみ適用されます。この修正プログラムは、今後さらにテストを受け取ることがあります。したがって、この問題で深刻な影響をされていない場合は、この修正プログラムを含む次のソフトウェア更新プログラムのリリースを待つことをお勧めします。

この修正プログラムがダウンロードできないか場合は、この記事の上部に「修正プログラムのダウンロード」セクションです。このセクションが表示されない場合は、マイクロソフト カスタマー サービス & サポート修正プログラムを入手するに問い合わせてください。

メモ その他の問題が発生した場合、またはトラブルシューティングが必要な場合は、別のサービス リクエストを作成する必要があります。追加の質問およびこの特定の修正プログラムの対象とならない問題については、通常のサポート料金が適用されます。一覧マイクロソフト カスタマー サービス & サポートの電話番号のまたは別のサービス リクエストを作成するには、次のマイクロソフト Web サイトを参照してください。
http://support.microsoft.com/contactus/?ws=support
メモ 「修正プログラムのダウンロード」フォームに修正プログラムが提供されている言語を表示します。お使いの言語が表示されない場合は、修正プログラムがその言語の利用できないためにです。

前提条件

  • Microsoft SQL Server 2005 Service Pack 1 (SP1)

    SQL Server 2005 SP1 を入手する方法の詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
    913089 SQL Server 2005 の最新の service pack を入手する方法

情報を再起動します。

この修正プログラムを適用した後コンピューターを再起動するはありません。

レジストリ情報

レジストリを変更するはありません。

修正プログラムのファイル情報

この修正プログラムにはこの資料に記載されている問題を修正するために必要なファイルのみが含まれています。この修正プログラムは、製品を最新のビルドに更新するために必要なすべてのファイルがありません。

この修正プログラムの英語版がファイル属性 (またはそれ以降のファイル属性) が、次のとおり。日付および時刻これらのファイルを世界協定時刻 (UTC) が表示されます。ファイル情報を表示すると、ローカル時刻に変換します。UTC とローカル時刻との時差を確認するを使用して、 タイム ゾーン コントロール パネルの日付と時刻の項目に含まれる ◇
SQL Server 2005 は、32 ビット版
元に戻す全体を表示する
ファイル名ファイルのバージョンファイルのサイズ日付時間プラットフォーム
Logread.exe2005.90.2192.0398,1122006 年 9 月 19 日15: 10x 86
Microsoft.analysisservices.adomdclient.dll9.0.2192.0543,5202006 年 9 月 19 日15: 11x 86
Microsoft.analysisservices.deploymentengine.dll9.0.2192.0138,0162006 年 9 月 19 日15: 09x 86
Microsoft.analysisservices.dll9.0.2192.01,215,2642006 年 9 月 19 日15: 10x 86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2192.075,5522006 年 9 月 19 日15: 08x 86
Microsoft.sqlserver.sqlenum.dll9.0.2192.0908,0642006 年 9 月 19 日15: 10x 86
Msgprox.dll2005.90.2192.0197,9202006 年 9 月 19 日15: 09x 86
Msmdlocal.dll9.0.2192.015,609,6322006 年 9 月 19 日15: 11x 86
Msmdredir.dll9.0.2192.03,990,3042006 年 9 月 19 日15: 11x 86
Replprov.dll2005.90.2192.0547,6162006 年 9 月 19 日15: 11x 86
Replrec.dll2005.90.2192.0782,1122006 年 9 月 19 日15: 10x 86
Sqlaccess.dll2005.90.2192.0347,9362006 年 9 月 19 日15: 10x 86
Sqlagent90.exe2005.90.2192.0319,2642006 年 9 月 19 日15: 10x 86
Sqlservr.exe2005.90.2192.028,962,1362006 年 9 月 19 日15: 12x 86
Xpstar90.dll2005.90.2192.0292,6402006 年 9 月 19 日14: 02x 86
Xpstar90.rll2005.90.2192.0152,8642006 年 9 月 19 日15: 10x 86
SQL Server 2005 は、x 64 バージョン
元に戻す全体を表示する
ファイル名ファイルのバージョンファイルのサイズ日付時間プラットフォーム
Logread.exe2005.90.2192.0522,5282006 年 9 月 19 日14: 23x64
Microsoft.analysisservices.adomdclient.dll9.0.2192.0543,5202006 年 9 月 19 日14: 23x 86
Microsoft.analysisservices.adomdclient.dll9.0.2192.0543,5202006 年 9 月 19 日15: 11x 86
Microsoft.analysisservices.deploymentengine.dll9.0.2192.0138,0162006 年 9 月 19 日15: 09x 86
Microsoft.analysisservices.dll9.0.2192.01,215,2642006 年 9 月 19 日15: 10x 86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2192.091,4242006 年 9 月 19 日14: 21x64
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2192.075,5522006 年 9 月 19 日15: 08x 86
Microsoft.sqlserver.sqlenum.dll9.0.2192.0875,2962006 年 9 月 19 日14: 20x 86
Msgprox.dll2005.90.2192.0259,3602006 年 9 月 19 日14: 22x64
Msmdlocal.dll9.0.2192.015,609,6322006 年 9 月 19 日15: 11x 86
Msmdredir.dll9.0.2192.03,990,3042006 年 9 月 19 日15: 11x 86
Replprov.dll2005.90.2192.0745,2482006 年 9 月 19 日14: 20x64
Replrec.dll2005.90.2192.01,008,4162006 年 9 月 19 日14: 21x64
Sqlaccess.dll2005.90.2192.0355,1042006 年 9 月 19 日14: 23x 86
Sqlagent90.exe2005.90.2192.0390,9442006 年 9 月 19 日14: 23x64
Sqlservr.exe2005.90.2192.039,350,0482006 年 9 月 19 日14: 21x64
Xpstar90.dll2005.90.2192.0540,9602006 年 9 月 19 日14: 23x64
Xpstar90.rll2005.90.2192.0153,3762006 年 9 月 19 日14: 21x64
SQL Server 2005 を Itanium アーキテクチャ バージョン
元に戻す全体を表示する
ファイル名ファイルのバージョンファイルのサイズ日付時間プラットフォーム
Logread.exe2005.90.2192.01,095,4562006 年 9 月 19 日13: 52IA-64
Microsoft.analysisservices.adomdclient.dll9.0.2192.0543,5202006 年 9 月 19 日13: 51x 86
Microsoft.analysisservices.adomdclient.dll9.0.2192.0543,5202006 年 9 月 19 日15: 11x 86
Microsoft.analysisservices.deploymentengine.dll9.0.2192.0138,0162006 年 9 月 19 日15: 09x 86
Microsoft.analysisservices.dll9.0.2192.01,215,2642006 年 9 月 19 日15: 10x 86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2192.0163,1042006 年 9 月 19 日13: 50IA-64
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2192.075,5522006 年 9 月 19 日15: 08x 86
Microsoft.sqlserver.sqlenum.dll9.0.2192.0875,2962006 年 9 月 19 日13: 52x 86
Msgprox.dll2005.90.2192.0542,4962006 年 9 月 19 日13: 51IA-64
Msmdlocal.dll9.0.2192.048,585,5042006 年 9 月 19 日13: 53IA-64
Msmdredir.dll9.0.2192.06,237,4722006 年 9 月 19 日13: 53IA-64
Replprov.dll2005.90.2192.01,617,1842006 年 9 月 19 日13: 52IA-64
Replrec.dll2005.90.2192.02,141,4722006 年 9 月 19 日13: 52IA-64
Sqlaccess.dll2005.90.2192.0349,4722006 年 9 月 19 日13: 51x 86
Sqlagent90.exe2005.90.2192.01,143,5842006 年 9 月 19 日13: 52IA-64
Sqlservr.exe2005.90.2192.072,233,7602006 年 9 月 19 日13: 53IA-64
Xpstar90.dll2005.90.2192.0951,0722006 年 9 月 19 日13: 51IA-64
Xpstar90.rll2005.90.2192.0152,3522006 年 9 月 19 日13: 50IA-64

状況

マイクロソフトでは、この「対象」に記載されているマイクロソフト製品の問題として認識しています。

詳細

Transact SQL クエリを実行すると、エラー 701 が発生するまで、次の項目が徐々 に増加することを確認します。
  • CACHESTORE_SQLCP のメモリ クラークを sys.dm_os_memory_clerks SQL Server os の管理ビュー
  • MEMOBJ_XSTMT メモリ オブジェクトから、 sys.dm_os_memory_objects SQL Server os の管理ビュー
詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
824684マイクロソフトのソフトウェア更新プログラムの説明に使用される一般的な用語の説明

問題の再現手順

  1. 高速を再現するには、少量のメモリを使用するのには、SQL Server 2005年を構成します。これを行うには、SQL Server 2005 では、次のスクリプトを実行します。
    -- Enable advanced options
    USE master
    EXEC sp_configure 'show advanced options', 1
    go
    RECONFIGURE WITH OVERRIDE
    go
    
    -- Set the maximum amount of memory to 300 MB
    exec sp_configure 'max server memory', 300
    go
    reconfigure with override
    go
    dbcc freeproccache
    go
    
  2. 停止して、SQL Server サービスを再開するには、コマンド プロンプトで次のコマンドを実行します。
    net stop mssqlserver
    net start mssqlserver
  3. SQL Server 2005 では、次の Transact SQL ステートメントを実行します。
    drop table t
    go
    create table t (c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, c10 int)
    go
    
    drop function fn_test
    go
    create function fn_test (@p1 int, @p2 int, @p3 int, @p4 int, @p5 int, @p6 int, @p7 int, @p8 int, @p9 int, @p10 int)
    returns @t table (c1 nvarchar(4) )
    with schemabinding
    as
    begin
    insert into @t values (N'abcd')
    return
    end
    go
    drop function fn_scalar
    go
    create function fn_scalar (@p1 int, @p2 int, @p3 int, @p4 int, @p5 int, @p6 int, @p7 int, @p8 int, @p9 int, @p10 int)
    returns nvarchar(4) 
    with schemabinding
    as
    begin
    declare @s nvarchar (4)
    set @s = N'abcd' 
    
    return @s
    end
    
    go
    drop function fn_test2
    go
    create function fn_test2 ()
    returns @t table (c1 nvarchar(4) )
    with schemabinding
    as
    begin
    insert into @t values (N'abcd')
    return
    end
    
    
    go
    set nocount on
    go
    declare @i int
    set @i = 0
    while @i < 5000000
    begin
    insert into t values (@i, @i, @i, @i, @i, @i, @i, @i, @i, @i)
    set @i = @i + 1
    end
    
    go
    -- The following select query returns the 701 error if you restrict max server memory to 300 MB
    select count(*) from t cross apply dbo.fn_test(c1,c2,c3,c4,c5,c6,c7,c8,c9,c10)
    
    
メモ Transact SQL TVF は、次の手順を使用します。この問題は、CLR TVF を使用する場合にも発生します。

プロパティ

文書番号: 924954 - 最終更新日: 2011年7月19日 - リビジョン: 3.0
キーワード:?
kbfix kbqfe kbpubtypekc kbexpertiseadvanced kbhotfixserver kbsql2005tsql kbautohotfix kbmt KB924954 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:924954
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