Creación de tablas temporales
Las tablas temporales pueden ayudar a identificar un subconjunto pequeño de filas de una tabla de resultados intermedios que desee almacenar permanentemente. Los dos tipos de tablas temporales son tablas temporales creadas y tablas temporales declaradas.
Puede utilizar tablas temporales para clasificar volúmenes grandes de datos y consultar estos datos. A continuación, después de identificar el número reducido de filas que desea almacenar de forma permanente, puede almacenarlas en una tabla base. Los dos tipos de tablas temporales en Db2 son la tabla temporal creada y la tabla temporal declarada. Los temas siguientes describen cómo definir cada tipo.
Tabla temporal creada
A veces, necesita una descripción compartible y permanente de una tabla pero necesita almacenar datos únicamente mientas dura un proceso de aplicación. En este caso, puede definir y utilizar una tabla temporal creada. Db2 no registra las operaciones que realiza en tablas temporales creadas; por lo tanto, las sentencias SQL que las utilizan pueden ejecutarse de manera más eficiente. Cada proceso de aplicaciones tiene su propia instancia de la tabla temporal creada.
Ejemplo: Tabla temporal creada
Por ejemplo, la sentencia siguiente define una tabla temporal creada, TEMPPROD:
CREATE GLOBAL TEMPORARY TABLE TEMPPROD
(SERIALNO CHAR(8) NOT NULL,
DESCRIPTION VARCHAR(60) NOT NULL,
MFGCOSTAMT DECIMAL(8,2) ,
MFGDEPTNO CHAR(3) ,
MARKUPPCT SMALLINT ,
SALESDEPTNO CHAR(3) ,
CURDATE DATE NOT NULL);
Tabla temporal declarada
A veces necesita almacenar datos mientras dura un proceso de aplicación, pero no necesita una descripción permanente y compartible de la tabla. En este caso, puede definir y utilizar una tabla temporal declarada.
A diferencia de otras sentencias Db2 DECLARE, DECLARE GLOBAL TEMPORARY TABLE es una sentencia ejecutable que puede incluir en un programa de aplicación o en un problema de forma interactiva. También puede preparar la sentencia de forma dinámica.
Cuando un programa de un proceso de aplicación emite una sentencia DECLARE GLOBAL TEMPORARY TABLE, Db2 crea una instancia vacía de la tabla. Puede llenar la tabla temporal declarada utilizando sentencias INSERT, modificar la tabla utilizando sentencias UPDATE o DELETE buscadas o situadas y consultar la tabla utilizando sentencias SELECT. También puede crear índices en la tabla temporal declarada. La definición de la tabla temporal declarada existe mientras se ejecuta el proceso de aplicaciones.
Ejemplo: Tabla temporal declarada
Por ejemplo, la sentencia siguiente define una tabla temporal declarada, TEMP_EMP. (En este ejemplo se supone que ya ha creado la base de datos WORKFILE y el espacio de tablas correspondiente para la tabla temporal.)
DECLARE GLOBAL TEMPORARY TABLE SESSION.TEMP_EMP
(EMPNO CHAR(6) NOT NULL,
SALARY DECIMAL(9, 2) ,
COMM DECIMAL(9, 2)); Si se especifica explícitamente, el calificador para el nombre de una tabla temporal declarada debe ser SESSION. Si no se especifica el calificador, se define implícitamente para que sea SESSION.
Al final de un proceso de aplicación que utiliza una tabla temporal declarada, Db2 suprime las filas de la tabla e implícitamente descarta la descripción de la tabla.