Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se muestra cómo detectar asimetría en la clave de distribución de una tabla distribuida en un dispositivo de almacenamiento de datos paralelos.
Versión original del producto: Almacenamiento de datos paralelos de SQL Server
Número de KB original: 3046863
Resumen
La asimetría de datos puede producirse en varios niveles diferentes en Almacenamiento de datos paralelos de Microsoft SQL Server. Este artículo se centra en las filas que se asimetrían a determinados valores. Esto puede hacer que una tabla distribuida coloque más datos en una distribución que en las otras distribuciones. La consulta siguiente cuenta el número de filas que tienen un valor específico para la clave de distribución de la tabla:
select distribution_key, count(distribution_key)
from distributed_table
group by distribution_key
--having count(distribtuion_key) >5000
order by count(distribtuion_key) desc
Nota:
La having
cláusula está comentada. Sin embargo, si desea realizar una comprobación rápida de si hay asimetría significativa, esta cláusula podría indicarle. Es posible que tenga que ajustar el valor de tener a algo que tenga sentido para el conjunto de resultados. Por ejemplo, si todos los valores tienen 5000 registros, se recomienda establecer este valor en 7500 o 10 000 para indicar un problema.
La pregunta de cuándo el sesgo se convierte en un problema no tiene una respuesta determinista. La asimetría se convierte en un problema cuando el rendimiento de las distribuciones sesgadas se vuelve notable y la aplicación no puede tolerar la situación. La regla general es que el dispositivo puede tolerar una asimetría de 10 a 20 por ciento en todas las tablas. Dentro de este umbral, las distribuciones sesgadas deben incluso estar bajo simultaneidad. Por encima de este umbral, puede empezar a ver algunas distribuciones de larga duración cuando se procesan los datos. Algunas implementaciones pueden tolerar una mayor asimetría y es posible que algunas implementaciones no puedan tolerar mucho esto. Las pruebas son necesarias para determinar el umbral real de la implementación.
Más información
Si el valor sesgado también se usa como condición de combinación y el otro lado se asimetría hacia el mismo valor, puede haber una explosión en el número de filas de la combinación. Esto puede hacer que la ejecución de consultas tarde mucho tiempo.
Importante
Preste atención adicional al número de valores NULL, ya que pueden causar problemas para las combinaciones.