a. PREPARE - Esta fase implica asignar todos los recursos para soportar la sentencia, verificar que la sintaxis sea la correcta, que las tablas existan y tengan los atributos mencionados, etc. También es la etapa en que se establece la estrategia de acceso (*) para resolver la sentencia. Todo esto tiene un costo, en tiempo, bastante alto. Por esta razón es recomendable hacerlo la menor cantidad de veces posible. Lo ideal es una vez por cada ejecución de la aplicación.
b. EXECUTE - En esta fase se ejecuta la sentencia. Si, por ejemplo, la sentencia era "SELECT ... FROM CLIENTES WHERE CLICOD = ?", entonces se le da un valor al ? y se "va a buscar" el cliente que corresponda a dicho valor. La estrategia de acceso es la que se determinó en el paso a. Salvo casos de sentencias muy complejas de altísimo costo de resolución (esto lo determina el optimizador del DBMS) no hay cambios de estrategia en esta fase. El Execute se ejecuta tantas veces como sea necesario "arrancar de nuevo".
c. FETCH - Esta fase es la que permite acceder a los datos resultantes de la sentencia ejecutada en el paso b. Sólo aplica si la sentencia es un SELECT. En caso de INSERTs, UPDATEs o DELETEs el FETCH no tiene sentido.
Se ejecuta, como máximo, tantas veces como filas resultantes del SELECT existan.
d. CLOSE - Esta fase libera algunos de los recursos consumidos por la sentencia. En particular: libera algunos tipos de locks (dependiendo del nivel de aislamiento), filas del resultado que NO han sido leídas por el cliente, etc.
Esta fase NO libera la estrategia de acceso a la base de datos de manera que si se hace otro Execute pueda ser reutilizada.
e. FREE - Esta fase, aunque no existe "formalmente", es la que libera todos los recursos de una sentencia, la estrategia tampoco queda. En GX esta fase ocurre al final del programa o, si se supera el máximo de cursores abiertos (sentencias activas), por defecto configurado en 100.
(*) ESTRATEGIA DE ACCESO - es el método que el DBMS selecciona para resolver una consulta. El que toma las decisiones sobre el método de acceso es lo que se llama el optimizador del DBMS. El método de acceso significa determinar, dada una consulta y un estado de la base de datos (tablas, índices, cantidad de registros, información de distribución de datos, etc.), la forma más eficiente de resolverla. Resolverla implica decidir qué tabla/tablas acceder primero, si accederlas por índice y por qué índice accederla, si hacer sort, si hacer una barrida total de las tablas, etc.
Más información: http://www.genexus.com/websac/websac.htm