Creo que abarca una parte de la pregunta, ya que la pregunta trata sobre rendimiento.
Avalados por :
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!
Creo que abarca una parte de la pregunta, ya que la pregunta trata sobre rendimiento.
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.
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:
Es por supuesto muy interesante solo si hay muchas actualizaciones.
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:
Es, por supuesto, muy interesante solo si hay muchas actualizaciones.
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute