Update sobre tabla particionada

Hola, voy a generar una tabla particionada diaria. Contendrá unos 600 mil registros día. A la hora de realizar la carga diaria, vendrán registros nuevos a insertar en la nueva partición y registros que hay que actualizar de las particiones de días anteriores.

 

Entiendo que hacer este update, ralentizará mucho el proceso de carga, pués no se sabe en que partición están los registros a actualizar.

 

Me gustaría saber como puedo solucionar esta problemática y que el proceso de carga no se demore mucho.

 

Gracias,

Javier Gómez.

Cuando utilizas particionamiento, para conseguir los mejores resultados, es muy aconsejable trabajar sobre las particiones por separado, pero eso no significa que no puedas recuperar o actualizar datos de más de una partición. Te puede empeorar el rendimiento, pero según lo que hagas la diferencia no tiene porqué ser tan grande.

Repito que depende mucho de lo que tengas que hacer, y de cómo tengas estructurada la BD, pero te comento alguna de las posibilidades que yo me plantearía:

  • Asegúrate de utilizar índices, si es posible únicos, para localizar los registros que se van a actualizar.
  • Puedes organizar la carga para que se ataque cada partición por separado, algo así como crear una sentencia de update para cada partición.
  • Con el volumen que tienes en cada partición no creo que sea el caso, pero a veces, si hay que actualizar muchos datos, o el update es complejo, es más rápido volver a crear una tabla o una partición que actualizarla.

Y sobretodo prueba antes de hacer ningún cambio importante, a lo mejor no tienes que actualizar muchos datos y los campos que utilizas para enlazar los registros están bien indexados, y estamos hablando de una problemática que no existe