Академический Документы
Профессиональный Документы
Культура Документы
Introducción
En el mundo de las bases de datos es muy común la utilización de tablas
temporales. A pesar de que todo el mundo sabe que este tipo de estructuras
ralentizan el funcionamiento de nuestras consultas, los programadores no pueden
evitar recurrir a ellas porque muchas veces facilitan la resolución de problemas.
Almacenar datos para usarlos posteriormente, guardar resultados parciales,
analizar grandes cantidades de filas. Hay muchos casos en los que podemos
necesitar estas tablas temporales, ¡Pero hay que utilizarlas correctamente! Primer
consejo: no usar tablas temporales
El primer consejo que tenemos que seguir a la hora de trabajar con tablas
temporales es bien sencillo: no usarlas. ¿Y por qué no? Pues hay un montón de
razones que iremos viendo a lo largo de este texto, pero para empezar veamos en
que se traduce el utilizar una tabla temporal en SQL Server:
Vistos estos problemas creo que no hace falta repetir nuestro prime consejo. ¿Y
qué podemos hacer entonces?
En vez de tablas temporales podemos mejorar nuestro código para que no sean
necesarias, podemos usar subconsultas (normalmente usar una subconsulta
mejora drásticamente el rendimiento respecto a usar tablas temporales), usar
tablas permanentes, usar tablas derivadas.
Hay que recordar siempre que cualquier alternativa es buena si evitamos usar
tablas temporales (¡cursores excluidos por supuesto!)
De todos modos si alguna vez tenemos que usarlas es mejor conocerlas bien, así
que vamos a ello. Tipos de tablas temporales
Las tablas temporales son de dos tipos en cuanto al alcance la tabla. Tenemos
tablas temporales locales y tablas temporales globales.
#locales: Las tablas temporales locales tienen una # como primer carácter en su
nombre y sólo se pueden utilizar en la conexión en la que el usuario las crea.
Cuando la conexión termina la tabla temporal desaparece.
##globales Las tablas temporales globales comienzan con ## y son visibles por
cualquier usuario conectado al SQL Server. Y una cosa más, estás tablas
desaparecen cuando ningún usuario está haciendo referencias a ellas, no cuado
se desconecta el usuario que la creo.
Temp Realmente hay un tipo más de tablas temporales. Si creamos una tabla
dentro de la base de datos temp es una tabla real en cuanto a que podemos
utilizarla como cualquier otra tabla en cualquier base de datos, y es temporal en
cuanto a que desaparece en cuanto apagamos el servidor.
Funcionamiento de tablas temporales
Crear una tabla temporal es igual que crear una tabla normal. Veámoslo con un
ejemplo:
Desde luego este ejemplo no es significativo, y en cada caso hay que estudiar la
situación y comparar los resultados obtenidos en un entorno de trabajo para saber
cual es la mejor opción, pero de todos modos espero que esto os sirva al menos
para conocer un poco mejor a las "tablas temporales".