Share via


Diseñar particiones para mejorar el rendimiento de las consultas

Las particiones en una tabla o índice pueden mejorar el rendimiento de las consultas, en función de los tipos de consultas que se suelen ejecutar y de la configuración del hardware.

Particiones para consultas de combinación

Si ejecuta con frecuencia consultas que implican una combinación de igualdad entre dos o más tablas con particiones, sus columnas con particiones deberían ser las mismas que las columnas en las que se combinan las tablas. Además, las tablas, o sus índices, deberían intercalarse. Esto significa que, o bien utilizan la misma función de partición, o bien utilizan funciones distintas que son esencialmente la misma, dado que:

  • Tienen el mismo número de parámetros que se utilizan para crear particiones y los parámetros correspondientes son de los mismos tipos de datos.

  • Definen el mismo número de particiones.

  • Definen los mismos valores de límite para las particiones.

De este modo, el optimizador de consultas de SQL Server puede procesar la combinación con mayor rapidez, porque las propias particiones se pueden combinar. Si una consulta combina dos tablas que no están intercaladas o no tienen particiones en el campo de combinación, la presencia de particiones puede ralentizar el procesamiento de consultas en lugar de acelerarlo.

Aprovechar varias unidades de disco

Puede resultar tentador asignar las particiones a grupos de archivos y que cada uno tenga acceso a una unidad de disco física diferente, con el fin de mejorar el rendimiento de E/S. Cuando SQL Server realiza una ordenación de los datos para operaciones de E/S, los ordena primero por partición. En este escenario, SQL Server tiene acceso a una unidad cada vez y esto podría reducir el rendimiento. En términos de rendimiento, una mejor solución sería crear bandas de los archivos de datos de las particiones en más de un disco configurando una RAID. De este modo, aunque SQL Server sigua ordenando los datos por partición, puede tener acceso a todas las unidades de cada partición al mismo tiempo. Esta configuración se puede diseñar independientemente de si todas las particiones están en un grupo de archivos o en varios. Para obtener más información acerca del funcionamiento de SQL Server con distintos niveles de RAID, vea Niveles RAID y SQL Server.

Controlar el comportamiento de extensión de bloqueo

La creación de particiones en las tablas puede mejorar el rendimiento habilitando la extensión de bloqueo a una partición única en lugar de una tabla entera. Para reducir la contención del bloqueo permitiendo la extensión de bloqueo a la partición, use la opción LOCK_ESCALATION de la instrucción ALTER TABLE.