¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Mejores prácticas para actualizar múltiples registros en una tabla de base de datos

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 23 Vistas
0
Cargando...

Hola

Espero que puedas ayudarme con esto.

En mi escenario, quiero actualizar un campo específico de varios registros específicos en una tabla de base de datos. Una opción sería usar la instrucción de actualización junto con 'SET' para cada registro individual o hacer la actualización con el uso de 'FROM TABLE' pero sin 'SET'.

Supongo que es importante saber cuántas entradas tengo que actualizar. Vamos a suponer que tengo que actualizar alrededor de 50 entradas en una tabla con casi 800,000 registros. No es realmente una tarea crítica en cuanto a rendimiento, pero aún así me intriga cuál es la mejor opción.

Ya he pensado en muchos pros y contras pero aún no he llegado a una conclusión. Si tuviera que actualizar una gran cantidad de registros y varios campos, definitivamente optaría por el 'FROM TABLE'. Sé que cada actualización causará costos adicionales de sobrecarga, pero de alguna manera creo que el 'SET' también puede darme una ventaja, especialmente por la cantidad de registros que tengo.

¿Qué opinas?

¡Gracias por cualquier aporte que tengas!

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Creo que abarca una parte de la pregunta, ya que la pregunta trata sobre rendimiento.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Resultados interesantes, no del todo inesperados.

Sin embargo, a menos que me esté perdiendo algo, no cubre la pregunta del OP sobre SET vs FROM TABLE, ya que ambas pruebas utilizaron un itab como fuente.

Según mi entendimiento, SET debería ser significativamente más rápido, ya que la base de datos no necesita 'recibir' los datos para cada fila, ya que solo tiene un valor único para aplicar a todas las filas. Por lo tanto, el procesamiento ocurre a un nivel más bajo. Pero estaría interesado en ver esto verificado en un sistema real. Podría escribir un pequeño informe de prueba si tengo algo de tiempo y nadie más ha hecho esto.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Aquí están los resultados de una prueba que realicé hace 1.5 años después de haber creado una vista de base de datos en la tabla VBAK, con actualización habilitada , y utilizando ABAP UPDATE table o view FROM TABLE itab. El resultado seguramente sería la misma proporción con MODIFY.

La tabla de base de datos VBAK tiene 159 columnas, 2216 bytes de ancho y 200.000 registros.

La base de datos era ORACLE 11.2. SAP 7.40.

Creé una vista de base de datos DDIC en VBAK, restringida a 8 columnas (que incluyen la columna a ser actualizada) y tiene un ancho de 130 bytes. La cantidad de datos enviados a la base de datos se reduce considerablemente.

Resultados: Realicé la prueba 5 veces, para actualizar las 200.000 filas, obtuve:

  • 24 segundos a través de la tabla de base de datos
  • 6 segundos a través de la vista

Es por supuesto muy interesante solo si hay muchas actualizaciones.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Aquí están los resultados de una prueba que realicé hace 1.5 años después de haber creado una vista de base de datos en la tabla VBAK, con actualización habilitada , y usando ABAP UPDATE table o vista DESDE la tabla itab. El resultado seguramente sería la misma proporción con MODIFY.

La tabla de base de datos VBAK tiene 159 columnas, 2216 bytes de ancho, y 200,000 registros.

La base de datos era ORACLE 11.2. SAP 7.40.

Creé una vista de base de datos DDIC en VBAK, restringida a 8 columnas (que incluyen la columna a ser actualizada) y tiene un ancho de 130 bytes. La cantidad de datos enviados a la base de datos se reduce considerablemente.

Resultados: Realicé la prueba 5 veces, para actualizar las 200,000 filas, obtuve:

  • 24 segundos a través de la tabla de base de datos
  • 6 segundos a través de la vista

Es, por supuesto, muy interesante solo si hay muchas actualizaciones.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?