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"

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.

924954
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
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.
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: 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
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
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
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 optionsUSE masterEXEC sp_configure 'show advanced options', 1goRECONFIGURE WITH OVERRIDEgo-- Set the maximum amount of memory to 300 MBexec sp_configure 'max server memory', 300goreconfigure with overridegodbcc freeproccachego
  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 tgocreate table t (c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, c10 int)godrop function fn_testgocreate 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 schemabindingasbegininsert into @t values (N'abcd')returnendgodrop function fn_scalargocreate 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 schemabindingasbegindeclare @s nvarchar (4)set @s = N'abcd' return @sendgodrop function fn_test2gocreate function fn_test2 ()returns @t table (c1 nvarchar(4) )with schemabindingasbegininsert into @t values (N'abcd')returnendgoset nocount ongodeclare @i intset @i = 0while @i < 5000000begininsert into t values (@i, @i, @i, @i, @i, @i, @i, @i, @i, @i)set @i = @i + 1endgo-- The following select query returns the 701 error if you restrict max server memory to 300 MBselect 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.

Advertencia: este artículo se ha traducido automáticamente

Propiedades

Id. de artículo: 924954 - Última revisión: 01/17/2015 16:08:34 - Revisión: 1.6

  • 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
  • kbnosurvey kbarchive kbmt kbautohotfix kbfix kbsql2005tsql kbexpertiseadvanced kbhotfixserver kbqfe kbpubtypekc KB924954 KbMtes
Comentarios