Utilizamos un dispositivo SQL Server PDW para nuestro almacén de datos. Una de las tablas en nuestro almacén es una tabla replicada con aproximadamente 20 millones de filas. Como parte de nuestro proceso ETL, necesitamos expirar los registros antiguos de esta dimensión; sin embargo, estamos viendo que actualizar un puñado de registros (<100) lleva más de 1 hora en completarse. Esto es lo que me gustaría mejorar si puedo.
Naturalmente, una opción en la que pensé fue cambiar esta Dimensión de Replicada a Distribuida. Mi prueba muestra que solucionaría el problema con el proceso ETL que tarda mucho (de 1,5 horas a 30 segundos), pero todas las uniones contra la versión distribuida de esta dimensión se verían afectadas ya que las uniones casi nunca se basan en la misma distribución columna. Cuando miro el plan de ejecución de algunas de estas consultas, generalmente veo una operación ShuffleMove o BroadcastMove .
Entonces mi pregunta al gurú de PDW aquí es:
¿Hay algo más que se pueda hacer para mejorar el rendimiento de la actualización de registros en la versión replicada de esta Dimensión?
Una vez más, pasar a una tabla distribuida no parece ser la mejor solución, ya que afectará a cientos de consultas SQL ya escritas e informes desarrollados por otras personas.