REVISIÓN: Cuando ejecuta una consulta que usa la MIN o MAX función contra una vista con particiones en SQL Server 2008, la consulta se ejecuta mucho más lentamente que al ejecutar la misma consulta en SQL Server 2005

Seleccione idioma Seleccione idioma
Id. de artículo: 973255 - Ver los productos a los que se aplica este artículo
Microsoft distribuye correcciones de Microsoft SQL Server 2008 como un archivo que se puede descargar. Como las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008.
Expandir todo | Contraer todo

Síntomas

En Microsoft SQL Server 2008, crear una vista con particiones. Ejecutar una consulta que utiliza la función de agregado MIN o MAX contra la vista con particiones. Sin embargo, es posible que las ejecuciones de consulta mucho más lentas en SQL Server 2008 que si ejecuta la misma consulta en SQL Server 2005.

Si examina el plan de ejecución de la consulta, encontrar que presenta el operador TOP en el plan de ejecución en SQL Server 2005. Sin embargo, el operador TOP no se presenta en el plan de ejecución de SQL Server 2008.

Por ejemplo, el plan de ejecución en SQL Server 2005 similar al siguiente:
  |--Stream Aggregate(DEFINE:([Expr1190]=MAX([partialagg1191])))
       |--Concatenation
            |--Top(TOP EXPRESSION:((1)))
            |    |--Clustered Index Scan(OBJECT:([Server].[dbo].[Database].[PK]), ORDERED BACKWARD)
            |--Top(TOP EXPRESSION:((1)))
                 |--Clustered Index Scan(OBJECT:([Server].[dbo].[Database].[PK]), ORDERED BACKWARD)
sin embargo, el plan de ejecución de la misma consulta en SQL Server 2008 similar al siguiente:
  |--Stream Aggregate(DEFINE:([Expr1190]=MAX([partialagg1191])))
       |--Concatenation
            |--Stream Aggregate(DEFINE:([partialagg1191]=MAX([Server].[dbo].[Database].[Column])))
            |    |--Index Scan(OBJECT:([Server].[dbo].[Database].[Index]))
            |--Stream Aggregate(DEFINE:([partialagg1191]=MAX([Server].[dbo].[Database].[Column])))
                 |--Index Scan(OBJECT:([Server].[dbo].[Database].[Index]))

Causa

El motor de base de datos de SQL se introduce una regla que traduce las funciones de agregación MIN y MAX para utilizar el operador TOP de (1) y el operador Index Seek en el plan de ejecución. Sin embargo, en este escenario, la regla no funciona en SQL Server 2008. Por tanto, se utiliza un índice incorrecto en la vista de partición. Esto hace que el problema de rendimiento.

Solución

La corrección para este problema se publicó por primera vez en la actualización acumulativa 4 para SQL Server 2008 Service Pack 1. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
973602Paquete de actualización acumulativa 4 para SQL Server 2008 Service Pack 1
Nota Como las compilaciones son acumulativas, cada versión de corrección nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008. Microsoft recomienda que considere aplicar la versión más reciente de revisión que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
970365Compilaciones de SQL Server 2008 se publicaron después del lanzamiento de SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 revisiones se crean para determinados service Pack de SQL Server. Debe aplicar una revisión de Service Pack 1 de SQL Server 2008 a una instalación de SQL Server 2008 Service Pack 1. De forma predeterminada, cualquier revisión suministrada en un service pack de SQL Server se incluye en el siguiente service pack.
Debe habilitar el indicador de traza 4199 para esta revisión surta efecto.

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:".

Referencias

Para obtener más información sobre el modelo de servicio incremental para SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
935897Un modelo incremental de servicio está disponible desde el equipo de SQL Server para entregar revisiones para problemas detectados


Para obtener más información acerca del esquema de nomenclatura para las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
822499Nuevo esquema de nomenclatura para los paquetes de actualización de software de Microsoft SQL Server


Para obtener más información acerca de la terminología relativa a las actualizaciones de software, 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

Propiedades

Id. de artículo: 973255 - Última revisión: martes, 22 de septiembre de 2009 - Versión: 1.1
La información de este artículo se refiere a:
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Workgroup
Palabras clave: 
kbmt kbsurveynew kbfix kbqfe kbexpertiseadvanced KB973255 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): 973255

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