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!
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.
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.
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.
Usuarios que han visto este tema también han visto...
- Funciones de cadena en SQL
- Bases de Datos Externas en SQL
- Arquitectura de las bases de datos
- Agrupamiento de Registros en SQL
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.