Mejoras de escalabilidad y rendimiento (motor de base de datos)

Entre las mejoras de escalabilidad y rendimiento de SQL Server Database Engine (Motor de base de datos de SQL Server) se incluyen las estadísticas e índices filtrados, las nuevas sugerencias de consulta y tabla, y las nuevas características de rendimiento y procesamiento de consultas.

Novedades de SQL Server 2008 R2 Service Pack 2

Novedades de SQL Server 2008 R2

Nota

Dado que SQL Server 2008 R2 es una actualización de versión menor de SQL Server 2008, recomendamos también revisar el contenido en la sección de SQL Server 2008.

Compresión Unicode

Los datos Unicode que se almacenan en las columnas nvarchar(n) y nchar(n) se comprimen usando una implementación del algoritmo SCSU (esquema de compresión estándar para Unicode). Para obtener más información, vea Implementación de la compresión Unicode.

Novedades de SQL Server 2008

Índices filtrados y estadísticas

En SQL Server 2008, puede utilizar un predicado para crear índices filtrados y estadísticas en un subconjunto de filas de la tabla. En versiones anteriores de SQL Server, los índices y estadísticas se creaban en todas las filas en la tabla. Los índices filtrados y las estadísticas son especialmente adecuados para consultas que seleccionan de subconjuntos bien determinados de datos, tales como columnas con valores NULL principalmente, columnas con categorías heterogéneas de valores, y columnas con intervalos de valores distintos.

Un índice filtrado bien diseñado puede mejorar el rendimiento de las consultas, reducir los costos de mantenimiento y de almacenamiento del índice en relación con los índices de tabla completa. Para obtener más información, vea Directrices generales para diseñar índices filtrados. Las estadísticas filtradas pueden mejorar la calidad del plan de consulta porque cubren solamente las filas del índice filtrado. Motor de base de datos crea y mantiene de forma automática las estadísticas filtradas para los índices filtrados. También se puede crear estadísticas filtradas en una columna no indizada para mejorar la calidad del plan de consulta para subconjuntos de datos que no necesiten un índice filtrado. Para obtener más información, vea Utilizar las estadísticas para mejorar el rendimiento de las consultas.

Sugerencias de consulta y tabla

La opción de sugerencia de consulta OPTIMIZE FOR incluye el valor de variable UNKNOWN

La opción de sugerencia de consulta OPTIMIZE FOR se ha mejorado con la sintaxis UNKNOWN, que especifica que Motor de base de datos utilice datos estadísticos para determinar los valores para una o más variables locales durante la optimización de la consulta, en lugar de los valores iniciales. La sintaxis se puede especificar para todas las variables locales de una consulta o para una o más variables locales con nombre. Para obtener más información, vea Sugerencias de consulta (Transact-SQL).

Sugerencia de consulta

Las sugerencias de tabla se pueden especificar ahora como sugerencias de consulta para proporcionar opciones avanzadas de ajuste de rendimiento de consultas. Solamente se recomienda usar una sugerencia de tabla como una sugerencia de consulta en el contexto de una guía de plan. Para obtener más información, vea Sugerencias de consulta (Transact-SQL) y Utilizar las sugerencias de consulta FORCESEEK e INDEX en guías de plan.

Sugerencias de tabla

Se ha agregado la sugerencia de tabla FORCESEEK para proporcionar opciones avanzadas de ajuste de rendimiento de consultas. La sugerencia especifica que el optimizador de consultas use solo una operación de búsqueda de índice como ruta de acceso a los datos de la tabla o vista a la que se hace referencia en la consulta. Para obtener más información, vea Utilizar la sugerencia de tabla FORCESEEK.

Procesado y rendimiento de la consulta

Opción de extensión de bloqueo

Una nueva opción LOCK_ESCALATION de ALTER TABLE permite deshabilitar la extensión de bloqueo en una tabla. En tablas con particiones, puede configurar los bloqueos para que se extiendan a las particiones, en lugar de a la tabla entera. Esta opción puede mejorar la simultaneidad reduciendo la contención de bloqueo cuando se utilizan tablas con particiones. Para obtener más información, vea ALTER TABLE (Transact-SQL).

Filtrado de mapas de bits optimizado

El optimizador de consultas puede colocar filtros de mapas de bits dinámicamente en planes de consulta paralelos para mejorar el rendimiento de las consultas frente a un esquema en estrella. El filtrado de mapas de bits optimizado puede mejorar significativamente el rendimiento de estas consultas del almacenamiento de datos, al quitar de la tabla de hechos las filas innecesarias temprano en el plan de consulta. Para obtener más información, vea Optimizar el rendimiento de las consultas del almacenamiento de datos a través del filtrado de mapas de bits.

Procesamiento paralelo de consultas en objetos con particiones

SQL Server 2008 mejora el rendimiento del procesado de consultas en tablas con particiones para muchos planes paralelos, cambiar la forma de representar los planes paralelos y en serie, y mejora la información de partición que se proporciona en los planes de ejecución tanto en tiempo de compilación como en tiempo de ejecución. SQL Server 2008 automatiza y mejora la estrategia de partición de subprocesos para planes de ejecución de consultas en paralelo en objetos con particiones. Para obtener más información, vea Mejoras de procesamiento de consultas en las tablas e índices con particiones.

Guías de plan

El procedimiento almacenado sp_create_plan_guide se ha extendido para aceptar directamente la salida del Plan de presentación XML en el parámetro @hints, en lugar de incrustar la salida en la sugerencia USE PLAN. Esto simplifica el proceso de aplicar un plan de consulta fijo como una sugerencia de guía de plan. Además, un nuevo procedimiento almacenado, sp_create_plan_guide_from_handle, permite crear una o más guías de plan a partir de un plan de consulta en la memoria caché de plan.

Puede crearse múltiples guías de plan OBJECT o SQL para la misma consulta y lote o módulo. Sin embargo, en un momento dado, solo puede estar habilitada una de estas guías de plan.

La nueva función del sistema sys.fn_validate_plan_guide se puede utilizar para validar una guía de plan. Las guías de plan pueden volverse no válidas una vez realizados cambios tales como la eliminación de un índice en el diseño físico de la base de datos. Al validar una guía de plan, es posible determinar si el optimizador de consultas puede utilizar la guía de plan sin ninguna modificación.

Nuevas clases de eventos, Guía de plan correcta y Guía de plan incorrecta, facilitan la tarea de comprobar que el optimizador de consultas está utilizando las guías de plan. Cuando SQL Server no puede generar un plan de ejecución para una consulta que contiene una guía de plan, la consulta se compila automáticamente sin usar la guía de plan. El evento Plan Guide Unsuccessful se produce cuando la compilación inicial de la guía de plan es incorrecta.

Nuevos contadores, Ejecuciones de plan con guía/s y Ejecuciones de plan sin guía/s , en SQL Statistics (objeto de SQL Server), se pueden utilizar para supervisar el número de ejecuciones del plan en las que el plan de consulta se ha generado correctamente o sin éxito utilizando una guía de plan.

Las operaciones tales como crear, eliminar, habilitar deshabilitar o crear scriptings de guías de plan se pueden realizar utilizando SQL Server Management Studio. Las guías de plan aparecen bajo la carpeta Capacidad de programación del Explorador de objetos.

Valores hash para buscar y ajustar consultas similares

Cuando busque consultas que usen recursos de forma intensiva, debe considerar cómo buscar y optimizar consultas similares que individualmente consuman un mínimo de recursos del sistema pero que en conjunto tengan un consumo significativo de recursos del sistema. Las vistas de catálogo sys.dm_exec_query_stats y sys.dm_exec_requests proporcionan los valores hash de consulta y de plan de consulta que puede utilizar para ayudar a determinar el uso de recursos agregados para consultas similares y planes de ejecución de consulta similares. Para obtener más información, vea Buscar y optimizar consultas similares utilizando hash del plan de consulta y de consulta.

Vea también

Conceptos