Mensaje de error de revisión: Cuando utiliza una función con valores de tabla (TVF) junto con el operador CROSS APPLY en una consulta en SQL Server 2005: "No hay memoria del sistema insuficiente para ejecutar esta consulta"

Seleccione idioma Seleccione idioma
Id. de artículo: 924954 - Ver los productos a los que se aplica este artículo
Nº de error: 50000224 (revisión SQL)
Microsoft distribuye correcciones de Microsoft SQL Server 2005 como un archivo descargable. Como las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad incluidas en el anterior de SQL Server 2005.
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo describe lo siguiente acerca de esta versión de revisión:
  • Los problemas corregidos por el paquete de hotfix
  • Los requisitos previos para aplicar el paquete de hotfix
  • Si debe reiniciar el equipo después de aplicar el paquete de hotfix
  • Si el paquete de hotfix queda reemplazado o no por otro paquete de hotfix
  • Si debe hacer cambios en el registro después de aplicar el paquete de hotfix
  • Archivos contenidos en el paquete de hotfix

Síntomas

Tenga en cuenta la situación siguiente. En Microsoft SQL Server 2005, se utiliza una función con valores de tabla (TVF) junto con el operador CROSS APPLY en una consulta. Utilice una función TVF de Transact-SQL o un common language runtime (CLR) TVF. En este escenario, puede aparecer el siguiente mensaje de error:
Msj 701, nivel 17, estado 123, línea 2
No hay memoria del sistema insuficiente para ejecutar esta consulta.
Normalmente, experimenta este problema si la tabla en el lado izquierdo de la consulta produce muchas filas.

Causa

Este problema se produce porque no se libera la memoria que se utiliza para los parámetros de la función TVF hasta que la consulta ha terminado de ejecutarse. Cuando se utiliza una función TVF junto con el operador CROSS APPLY, la función TVF se puede llamar varias veces incluso si la consulta se ejecuta una vez. Cuando la función TVF se llama varias veces, se consume mucha memoria.

Solución

Información de revisiones

Hay una revisión compatible de Microsoft. Sin embargo, esta revisión se diseñó para corregir el problema descrito en este artículo. Aplíquela sólo a los sistemas que experimenten este problema específico. Esta revisión podría sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere a la siguiente actualización de software que contenga este hotfix.

Si la revisión está disponible para descarga, es hay una sección de "Descarga de revisión disponible" al principio de este artículo. Póngase en contacto si no aparece en esta sección, con los Microsoft cliente Servicios de y soporte técnico para obtener la revisión de.

Nota Si se producen problemas adicionales o si cualquier solución de problemas es necesario, quizás tenga que crear una solicitud de servicio independiente. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con esta revisión específica. Para obtener una lista completa de números de teléfono de servicio de atención al cliente y soporte técnico o para crear una solicitud de servicio independiente, visite el siguiente sitio Web:
http://support.microsoft.com/contactus/?ws=support
Nota El formulario "Descarga de revisión disponibles" muestra los idiomas para que la revisión está disponible. Si no ve su idioma, es porque una revisión no está disponible para ese idioma.

Requisitos previos

  • Microsoft SQL Server 2005 Service Pack 1 (SP1)

    Para obtener información acerca de cómo obtener SQL Server 2005 SP1, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    913089Cómo obtener el service pack más reciente para SQL Server 2005

Información de reinicio

No es necesario reiniciar el equipo después de aplicar la revisión.

Información del registro

No es necesario cambiar el registro.

Información de archivos de hotfix

Este hotfix contiene sólo los archivos necesarios para corregir los problemas recogidos en este artículo. Esta revisión no puede contenga todos los archivos que debe tener para actualizar plenamente un producto a la compilación más reciente.

La versión en inglés de este hotfix tiene los atributos de archivo (o atributos de último archivo) mostrados en la siguiente tabla. Las fechas y las horas de estos archivos se muestran en hora universal coordinada (UTC). La información de los archivos se convertirá a la hora local cuando la vea. Para averiguar la diferencia entre hora UTC y la hora local, utilice la ficha zona horaria el elemento fecha y hora en el panel de control.
SQL Server 2005, las versiones de 32 bits
Contraer esta tablaAmpliar esta tabla
Nombre de archivoArchivo VersiónTamaño del archivoFechaTiempoPlataforma
Logread.exe2005.90.2192.0398,11219 De septiembre de 200610: 15x 86
Microsoft.AnalysisServices.AdomdClient.dll9.0.2192.0543,52019 De septiembre de 200611: 15x 86
Microsoft.AnalysisServices.deploymentengine.dll9.0.2192.0138,01619 De septiembre de 200615: 09x 86
Microsoft.AnalysisServices.dll9.0.2192.01,215,26419 De septiembre de 200610: 15x 86
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2192.075,55219 De septiembre de 200615: 08x 86
Microsoft.SqlServer.SqlEnum.dll9.0.2192.0908,06419 De septiembre de 200610: 15x 86
Msgprox.dll2005.90.2192.0197,92019 De septiembre de 200615: 09x 86
Msmdlocal.dll9.0.2192.015,609,63219 De septiembre de 200611: 15x 86
Msmdredir.dll9.0.2192.03,990,30419 De septiembre de 200611: 15x 86
Replprov.dll2005.90.2192.0547,61619 De septiembre de 200611: 15x 86
Replrec.dll2005.90.2192.0782,11219 De septiembre de 200610: 15x 86
Sqlaccess.dll2005.90.2192.0347,93619 De septiembre de 200610: 15x 86
Sqlagent90.exe2005.90.2192.0319,26419 De septiembre de 200610: 15x 86
Sqlservr.exe2005.90.2192.028,962,13619 De septiembre de 200615: 12x 86
Xpstar90.dll2005.90.2192.0292,64019 De septiembre de 200614: 02x 86
Xpstar90.rll2005.90.2192.0152,86419 De septiembre de 200610: 15x 86
SQL Server 2005, versión de 64 x
Contraer esta tablaAmpliar esta tabla
Nombre de archivoArchivo VersiónTamaño del archivoFechaTiempoPlataforma
Logread.exe2005.90.2192.0522,52819 De septiembre de 200614: 23x 64
Microsoft.AnalysisServices.AdomdClient.dll9.0.2192.0543,52019 De septiembre de 200614: 23x 86
Microsoft.AnalysisServices.AdomdClient.dll9.0.2192.0543,52019 De septiembre de 200611: 15x 86
Microsoft.AnalysisServices.deploymentengine.dll9.0.2192.0138,01619 De septiembre de 200615: 09x 86
Microsoft.AnalysisServices.dll9.0.2192.01,215,26419 De septiembre de 200610: 15x 86
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2192.091,42419 De septiembre de 200614: 21x 64
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2192.075,55219 De septiembre de 200615: 08x 86
Microsoft.SqlServer.SqlEnum.dll9.0.2192.0875,29619 De septiembre de 200614: 20x 86
Msgprox.dll2005.90.2192.0259,36019 De septiembre de 200622: 14x 64
Msmdlocal.dll9.0.2192.015,609,63219 De septiembre de 200611: 15x 86
Msmdredir.dll9.0.2192.03,990,30419 De septiembre de 200611: 15x 86
Replprov.dll2005.90.2192.0745,24819 De septiembre de 200614: 20x 64
Replrec.dll2005.90.2192.01,008,41619 De septiembre de 200614: 21x 64
Sqlaccess.dll2005.90.2192.0355,10419 De septiembre de 200614: 23x 86
Sqlagent90.exe2005.90.2192.0390,94419 De septiembre de 200614: 23x 64
Sqlservr.exe2005.90.2192.039,350,04819 De septiembre de 200614: 21x 64
Xpstar90.dll2005.90.2192.0540,96019 De septiembre de 200614: 23x 64
Xpstar90.rll2005.90.2192.0153,37619 De septiembre de 200614: 21x 64
SQL Server 2005, versión de arquitectura Itanium
Contraer esta tablaAmpliar esta tabla
Nombre de archivoArchivo VersiónTamaño del archivoFechaTiempoPlataforma
Logread.exe2005.90.2192.01,095,45619 De septiembre de 200613: 52IA-64
Microsoft.AnalysisServices.AdomdClient.dll9.0.2192.0543,52019 De septiembre de 200613: 51x 86
Microsoft.AnalysisServices.AdomdClient.dll9.0.2192.0543,52019 De septiembre de 200611: 15x 86
Microsoft.AnalysisServices.deploymentengine.dll9.0.2192.0138,01619 De septiembre de 200615: 09x 86
Microsoft.AnalysisServices.dll9.0.2192.01,215,26419 De septiembre de 200610: 15x 86
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2192.0163,10419 De septiembre de 200613: 50IA-64
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2192.075,55219 De septiembre de 200615: 08x 86
Microsoft.SqlServer.SqlEnum.dll9.0.2192.0875,29619 De septiembre de 200613: 52x 86
Msgprox.dll2005.90.2192.0542,49619 De septiembre de 200613: 51IA-64
Msmdlocal.dll9.0.2192.048,585,50419 De septiembre de 200613: 53IA-64
Msmdredir.dll9.0.2192.06,237,47219 De septiembre de 200613: 53IA-64
Replprov.dll2005.90.2192.01,617,18419 De septiembre de 200613: 52IA-64
Replrec.dll2005.90.2192.02,141,47219 De septiembre de 200613: 52IA-64
Sqlaccess.dll2005.90.2192.0349,47219 De septiembre de 200613: 51x 86
Sqlagent90.exe2005.90.2192.01,143,58419 De septiembre de 200613: 52IA-64
Sqlservr.exe2005.90.2192.072,233,76019 De septiembre de 200613: 53IA-64
Xpstar90.dll2005.90.2192.0951,07219 De septiembre de 200613: 51IA-64
Xpstar90.rll2005.90.2192.0152,35219 De septiembre de 200613: 50IA-64

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:".

Más información

Cuando ejecute la consulta de Transact-SQL, observa que los siguientes elementos aumentan gradualmente hasta que se produce el error 701:
  • El empleado de memoria CACHESTORE_SQLCP desde sys.dm_os_memory_clerks vista de administración de sistema operativo de SQL Server
  • El objeto memoria MEMOBJ_XSTMT sys.dm_os_memory_objects vista de administración de sistema operativo de SQL Server
Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft

Pasos para reproducir el problema

  1. Para reproducir el problema más rápidamente, configurar SQL Server 2005 para utilizar una pequeña cantidad de memoria. Para ello, ejecute la siguiente secuencia de comandos en 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. Para detener y reiniciar a continuación, el servicio de SQL Server, ejecute los comandos siguientes en el símbolo del sistema:
    net stop mssqlserver
    net start mssqlserver
  3. En SQL Server 2005, ejecute las siguientes instrucciones de 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)
    
    
Nota Estos pasos utiliza una función TVF de Transact-SQL. Este problema se produce cuando se utiliza una función TVF de CLR.

Propiedades

Id. de artículo: 924954 - Última revisión: martes, 20 de noviembre de 2007 - Versión: 1.6
La información de este artículo se refiere a:
  • 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
Palabras clave: 
kbmt kbautohotfix kbfix kbsql2005tsql kbexpertiseadvanced kbhotfixserver kbqfe kbpubtypekc KB924954 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 924954

Enviar comentarios

 

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