Oprava: Chybová zpráva při použití funkce tabulky hodnotou (TVF) spolu s operátorem CROSS použít v dotazu v SQL Server 2005: „ je dispozici dostatek paměti ke spuštění tohoto dotazu „

Překlady článku Překlady článku
ID článku: 924954 - Produkty, které se vztahují k tomuto článku.
Chyba č: 50000224 (SQL Hotfix)
Společnost Microsoft distribuuje opravy Microsoft SQL Server 2005 jako jeden soubor ke stažení. Protože jsou kumulativní opravy, každé nové vydání obsahuje všechny opravy hotfix a opravte všechny opravy zabezpečení, které byly součástí předchozí SQL Server 2005 vydání.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek popisuje následující o tomto vydání opravy hotfix:
  • Problémy opravené balíčkem oprav hotfix
  • Požadavky pro použití balíčku opravy hotfix
  • Zda třeba restartovat počítač po instalaci balíčku opravy hotfix
  • nahrazení balíčku oprav hotfix jiným balíčkem oprav hotfix
  • Zda je nutné provést libovolné změny registru po instalaci balíčku opravy hotfix
  • soubory obsažené v balíčku oprav hotfix

Příznaky

Předpokládejme následující situaci. Microsoft SQL Server 2005 pomocí funkce tabulky hodnotou (TVF) spolu s operátorem CROSS použít v dotazu. Použít TVF Transact-SQL nebo společného jazykového modulu runtime (CLR) TVF. V tomto případě se může zobrazit následující chybová zpráva:
Msg 701, úroveň 17 Stav 123, řádek 2
Je nedostatek systémové paměti ke spuštění tohoto dotazu.
Tento problém se obvykle dojít pokud tabulce na levé straně dotazu vytváří mnoho řádků.

Příčina

K tomuto problému dochází, protože paměti používané pro parametry TVF není uvolněna, dokud dotaz byl ukončen. Při použití TVF spolu s operátorem CROSS použít TVF může být volána mnohokrát i při spuštění dotazu jednou. Když TVF nazývá mnohokrát, velké množství paměti je spotřebována.

Řešení

Informace o opravě hotfix

K dispozici je podporovaná oprava hotfix od společnosti Microsoft. Tato oprava hotfix je však určena pouze k opravě problému popsanému v tomto článku. Použijte tuto opravu hotfix pouze u systémů, kde dochází k tomuto konkrétnímu problému. Tato oprava hotfix může být dále testována. Pokud Vás tento problém závažně nepostihuje, doporučujeme počkat na další aktualizaci softwaru, která bude tuto opravu hotfix obsahovat.

Pokud je oprava hotfix k dispozici ke stažení, v horní části tohoto článku je sekce "Hotfix stažení k dispozici". Pokud tento oddíl nevidíte, obraťte se na Technickou podpora společnosti Microsoft pro získání opravy hotfix.

Poznámka: Pokud vyskytnout další problémy nebo jakékoli řešení potíží je vyžadován, pravděpodobně budete muset vytvořit zvláštní požadavek na službu. Výdaje na technickou podporu se týkají dalších otázek a problémů, které nelze vyřešit pomocí této opravy konkrétní opravy hotfix. Navštivte následující web společnosti Microsoft pro získání telefonního čísla na Zákaznické centrum, nebo pokud chcete vytvořit samostatnou žádost o podporu:
http://support.microsoft.com/contactus/?ws=support
Poznámka: Zobrazí formulář "Hotfix stažení k dispozici" jazyky, pro které je oprava hotfix k dispozici. Pokud váš jazyk není zobrazen, oprava hotfix není k dispozici pro daný jazyk.

Požadavky

  • Microsoft SQL Server 2005 Service Pack 1 (SP1)

    Informace o získání SQL Server 2005 SP1 klepněte na následující číslo článku databáze Microsoft Knowledge Base:
    913089Jak získat nejnovější aktualizaci service pack pro SQL Server 2005

Informace o restartování

Nemáte po instalaci opravy hotfix restartovat počítač.

Informace o registru

Nemáte změna registru.

Informace o souboru opravy hotfix

Tato oprava hotfix obsahuje pouze soubory, které jsou nutné k opravě problémů uvedených v tomto článku. Oprava hotfix nemusí obsahovat všechny soubory nutné k plné aktualizaci produktu na nejnovější verzi.

Anglická verze této opravy hotfix má následující (nebo pozdější) atributy souborů. Data a časy jednotlivých souborů jsou uvedeny ve formátu UTC (Coordinated Universal Time). Pokud zobrazíte informace o souboru, bude převedena na místní čas. Rozdíl mezi místním ČASEM a najít, použijte kartu časové pásmo v položce Datum a čas v ovládacím.
SQL 2005, 32bitové verze
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Logread.exe2005.90.2192.0398,11219. Září 200615: 10X86
Microsoft.analysisservices.adomdclient.dll9.0.2192.0543,52019. Září 200615: 11X86
Microsoft.analysisservices.deploymentengine.dll9.0.2192.0138,01619. Září 200615: 09X86
Microsoft.analysisservices.dll9.0.2192.01,215,26419. Září 200615: 10X86
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2192.075,55219. Září 200615: 08X86
Microsoft.SQLServer.sqlenum.dll9.0.2192.0908,06419. Září 200615: 10X86
Msgprox.dll2005.90.2192.0197,92019. Září 200615: 09X86
Msmdlocal.dll9.0.2192.015,609,63219. Září 200615: 11X86
Msmdredir.dll9.0.2192.03,990,30419. Září 200615: 11X86
Replprov.dll2005.90.2192.0547,61619. Září 200615: 11X86
Replrec.dll2005.90.2192.0782,11219. Září 200615: 10X86
Sqlaccess.dll2005.90.2192.0347,93619. Září 200615: 10X86
Sqlagent90.exe2005.90.2192.0319,26419. Září 200615: 10X86
Sqlservr.exe2005.90.2192.028,962,13619. Září 200615: 12X86
Xpstar90.dll2005.90.2192.0292,64019. Září 200614: 02X86
Xpstar90.rll2005.90.2192.0152,86419. Září 200615: 10X86
SQL Server 2005 x 64 verze
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Logread.exe2005.90.2192.0522,52819. Září 200614: 23X64
Microsoft.analysisservices.adomdclient.dll9.0.2192.0543,52019. Září 200614: 23X86
Microsoft.analysisservices.adomdclient.dll9.0.2192.0543,52019. Září 200615: 11X86
Microsoft.analysisservices.deploymentengine.dll9.0.2192.0138,01619. Září 200615: 09X86
Microsoft.analysisservices.dll9.0.2192.01,215,26419. Září 200615: 10X86
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2192.091,42419. Září 200614: 21X64
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2192.075,55219. Září 200615: 08X86
Microsoft.SQLServer.sqlenum.dll9.0.2192.0875,29619. Září 200614: 20X86
Msgprox.dll2005.90.2192.0259,36019. Září 200614: 22X64
Msmdlocal.dll9.0.2192.015,609,63219. Září 200615: 11X86
Msmdredir.dll9.0.2192.03,990,30419. Září 200615: 11X86
Replprov.dll2005.90.2192.0745,24819. Září 200614: 20X64
Replrec.dll2005.90.2192.01,008,41619. Září 200614: 21X64
Sqlaccess.dll2005.90.2192.0355,10419. Září 200614: 23X86
Sqlagent90.exe2005.90.2192.0390,94419. Září 200614: 23X64
Sqlservr.exe2005.90.2192.039,350,04819. Září 200614: 21X64
Xpstar90.dll2005.90.2192.0540,96019. Září 200614: 23X64
Xpstar90.rll2005.90.2192.0153,37619. Září 200614: 21X64
SQL 2005, verze na architektuře Itanium
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Logread.exe2005.90.2192.01,095,45619. Září 200613: 52IA-64
Microsoft.analysisservices.adomdclient.dll9.0.2192.0543,52019. Září 200613: 51X86
Microsoft.analysisservices.adomdclient.dll9.0.2192.0543,52019. Září 200615: 11X86
Microsoft.analysisservices.deploymentengine.dll9.0.2192.0138,01619. Září 200615: 09X86
Microsoft.analysisservices.dll9.0.2192.01,215,26419. Září 200615: 10X86
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2192.0163,10419. Září 200613: 50IA-64
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2192.075,55219. Září 200615: 08X86
Microsoft.SQLServer.sqlenum.dll9.0.2192.0875,29619. Září 200613: 52X86
Msgprox.dll2005.90.2192.0542,49619. Září 200613: 51IA-64
Msmdlocal.dll9.0.2192.048,585,50419. Září 200613: 53IA-64
Msmdredir.dll9.0.2192.06,237,47219. Září 200613: 53IA-64
Replprov.dll2005.90.2192.01,617,18419. Září 200613: 52IA-64
Replrec.dll2005.90.2192.02,141,47219. Září 200613: 52IA-64
Sqlaccess.dll2005.90.2192.0349,47219. Září 200613: 51X86
Sqlagent90.exe2005.90.2192.01,143,58419. Září 200613: 52IA-64
Sqlservr.exe2005.90.2192.072,233,76019. Září 200613: 53IA-64
Xpstar90.dll2005.90.2192.0951,07219. Září 200613: 51IA-64
Xpstar90.rll2005.90.2192.0152,35219. Září 200613: 50IA-64

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Další informace

Při spuštění dotazu Transact-SQL si následující položky zvýšit postupně dokud dojde k chybě 701:
  • Účetní CACHESTORE_SQLCP paměti z sys.dm_os_memory_clerks zobrazení správy operačního systému serveru SQL
  • Objekt MEMOBJ_XSTMT paměti z sys.dm_os_memory_objects zobrazení správy operačního systému serveru SQL
Další informace naleznete následujícím článku znalostní databáze Microsoft Knowledge Base:
824684Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft

Postup reprodukce problému

  1. Rychlejší problém reprodukovat, konfigurovat SQL Server 2005 použijte malé množství paměti. Chcete-li to provést, spusťte následující skript 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. Zastavit a restartovat službu SQL Server, spusťte následující příkazy příkazového řádku:
    net stop mssqlserver
    net start mssqlserver
  3. V SQL Server 2005 spusťte následující příkazy 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)
    
    
Poznámka: Tyto kroky použijte TVF Transact-SQL. K tomuto problému také dochází při použití TVF CLR.

Vlastnosti

ID článku: 924954 - Poslední aktualizace: 20. listopadu 2007 - Revize: 1.6
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition
Klíčová slova: 
kbmt kbautohotfix kbfix kbsql2005tsql kbexpertiseadvanced kbhotfixserver kbqfe kbpubtypekc KB924954 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:924954

Dejte nám zpětnou vazbu

 

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