Me encanta discutir
:-).
Ahora en serio, os
comento mis creencias al respecto, para ver si estoy o no en lo
cierto
Acceso tradicional a
un fichero físico/lógico:
- El fichero se abre
una sola vez ( si no es usropn, al inicio del
programa)
- Para cualquier
operación a realizar, el sistema no ha de buscar la mejor estrategia ni
planificar nada: simplemente busca en el índice, y/o recupera los
datos.
- En el programa se
reserva memoria para la infds del fichero y para los campos del formato de
registro.
Acceso con sql:
- El sistema ha de
analizar la sentencia y buscar la estrategia que considera mejor ( la que
encuentra no siempre lo es ). Si se prepara la sentencia, este paso solo se
realiza una vez, por más veces que se ejecute después.
- Los ficheros
empleados en la sentencia se abren y cierran cada vez que se ejecuta ésta ( eso
creo, aunque no estoy seguro ). Esto no es aplicable a las operaciones que
recorren un cursor.
- por cada sentencia
sql se define en el programa una estructura de datos, cuyo tamaño real
desconozco, pero que según para que cosas debe ser tenido en cuenta, ya que en
algunos manuales sobre ILE se recomienda no abusar de los sqls en programas de
servicio por su consumo de memoria.
Resumiendo... pues
lo que dije en mi anterior mensaje. Aunque coincido en que la implementación
final del acceso a los registros es idéntica tanpo por sql como por acceso
tradicional, antes de eso los accesos sql requieren un trabajo extra que no
requiere el acceso tradicional. Eso, unido a su posible mayor necesidad de
recursos de memoria lo hacen menos eficiente en el acceso aleatorio a un
registro ( por ejemplo, desde el mantenimiento de pedidos, acceder a la tarifa a
aplicar a la línea que se está grabando). La cosa cambia cuando se accede a
varios registros ( cursores, actualizaciones masivas, ... ). Aquí sql suele
acabar siendo igual o más eficiente que el acceso tradicional, salvo cuando la
estrategia de acceso a los datos que encuentra el analizador no es la mejor, en
cuyo caso puede ser mucho peor.
Lo dicho, son
solo creencias. Agradeceré cualquier corrección a las
mismas.
Saludos. Fernando Pérez. Cerámica Saloni. Dpto. Sistemas
|
Fernando Pérez.vcf
Description: Binary data