Tablas temporales en el Transa-SQL



Podemos usar dos trucos para programar en procedimientos almacenados en T-SQL:

1. Usar tablas temporales en disco:

Estas se crean como cualquier tabla:

'Create table #MiTabla(valor1 tipoDeDato1, ...)'

Asi que la unica diferencia con crear una tabla realmente es el signo # y podemos hacer inserciones y todo lo que querramos. Se supone que esta se elimina al terminar el procedimiento o la sesión del usuario, sin embargo para fines de efectividad se recomienda hacerle un 'delete table #MiTabla' en cuanto esta ya no se necesite ya que estas tablas se crean en disco duro. Lo que todavia no he comprobado es si se crea una tabla temporal por sesión o todos los usuarios acceden a la misma tabla, lo cual nos podria traer algunos problemas de concurrencia...

2. Usar tablas temporales en memoria:

Estas estan un poco mejor y quiero suponer que no tendremos problemas de concurrencia con ellas ya que son declaradas como una variable:

'declare @MiTabla TABLE(valor1 tipoDeDato1, ...)'

para despues poder utilizarse como cualquier tabla comun y corriente.

Asi que el top-ten de uso en efectividad es el siguiente:

1. Tablas.
2. Tablas temporales en memoria.
3. Tablas temporales en disco.
4. Cursores.

Curiosamente ocupa menos procesamiento accesar el disco que declarar un cursor en memoria, los cursores pueden ser utiles en registros no mayores a 300, para el resto se recomienda el uso de tablas temporales, claro que todo depende de los requerimientos de tu sistema.

Referencias: http://sql.manivesa.com/Tutoriales+SQL/SQL+Server/550.aspx

Shakira Isabel Mebarak Ripoll

Algunos dirán que estoy loco, a otros no les sorprenderá pero esta canción me gusta desde que salió alla por 1996 [y no nada mas por esa rola valio la pena para mi, sino además del despliegue impresionante de luces, danza y vestimentas multicolor al mas puro estilo de los grandes conciertos internacionales]. Pies descalzos siempre me pareció de una letra bastante contestataria y desde entonces me sentí identificado con ella... independientemente del rock-pop que la acompaña que es muy bueno... aparte del estilacho shakiresco, jeje. Muchos se quejaron de Shakira en el concierto en Chihuahua, yo me quejo de los Chihuahuenses, se la pasaron mas grabando el concierto que disfrutandolo, nada mas habría de contar las lucecitas de celulares por todos lados grabando y fotografiando... y solo aparecieron dos videos en youtube ... y de mala calidad, que fiasco. Asi que mejor pongo un antes y un después, cuando empezaba doña Chabela Mebarak y un concierto en el df en 1996 donde la gente si se sabia las rolas, jaja...


Antes ...


Despues ...




recuerden siempre ponerse zapatos y no hacer ruido en la mesa ...

SQL

1. Copiar una tabla. agregado el 17-05-2007:

select tabla1.* into tabla2 from tabla1 where 1=2

Lo que hace es copiar la toda la tabla uno en una tabla2 creando la tabla 2 y la comparación falsa 1=2 es que la copia vacía, solo su estructura, digamos que es como un Save As. Ahora, si una vez que la creamos nos arrepentimos de nuestros pecados y queremos meter datos en la tabla 2 tenemos que hacer algo similar al siguiente punto.

2. Insertar de una tabla a otra. 18-05-2007

insert into tabla2 select * from tabla1 where 1=1

Esto nos copiara todo el contenido, claro que podemos definir el filtro como nosotros queramos.

3. Vaciar una tabla

delete tabla

Hay que tener cuidado con esta aparentemente inocente instrucción, puede causar daños irreparables si no se tiene un respaldo de los datos.

Receta de Cocina Postgresql.

Para esta receta utilizaremos un ubuntu feisty montado en una dell inspiron E1505:

1. Dadas estas caracteristicas bajaremos nuestro gestor de bases de datos postgresql mediante el maravilloso apt-get (o si prefieren usar Synaptics allá ustedes):
$sudo apt-get install postgresql-8.2

2. Una vez instalado nos disponemos a entrar con nuestro usuario postgres a nuestra sesion postgres:
$sudo su postgresql
Deberemos ver en nuestro shell como algo similar a esto:
postgres@micompu: /$

3. Ahora, podemos intentar entrar al administrador psql:
postgres@micompu: /$ psql

Esto nos dará acceso a todas las bases de datos como administrador, como ven, esto es poco seguro, además de que no podemos hacer muchas cosas, por eso vamos a colocar la contraseña para administrador y vamos a realizar un pequeño cambio a la configuración:

3a. Para cambiar la contraseña, ya estando dentro del editor psql escribimos las siguientes lineas

=# ALTER USER postgres
=# WITH PASSWORD '12345';

Si todo salio bien nos salimos con el comando \q
=#\q

4a. Luego un exit para volver a nuestro usuario. Entraremos a nuestro archivo de configuracion de conexiónes pg_hba.conf de nuestro postgresql.
$sudo vi /etc/postgresql/8.2/main/hba.conf

y cambiamos la linea
local all all ident sameuser
por
local all all password

y hasta donde tengo entendido esto permitira accesos desde cualquier lugar por medio de un password, de otra manera nadie podrá accesar aunque le asignes un password.

Ahora reiniciaremos nuestro servidor de bases de datos:
$sudo /etc/init.d/postgresql-8.2 restart

Ahora entraremos tal como lo hicimos hasta el paso 3.

4. Una vez en en psql, nos dispongremos a crear un usuario, de hecho hay dos maneras de hacerlo:

4a.la primera mediante el comando createuser pero no en psql sino como usuario general de postgres, asi que tendriamos que salir de psql para hacerlo. Te preguntara algunas cosas como si el usuario creado va a ser

4b. la segunda es ejecutando una sentencia SQL dentro de psql, la cual sería similar a esta:
=#CREATE USER nombre_del_usuario WITH PASSWORD 'supass';

5. Ahora crearemos una base de datos que pertenezca a ese Usuario
=#CREATE DATABASE mi_db WITH OWNER = "nombre_del_usuario";


6. Ahora podemos entrar desde usuario postgres
postgres@micompu: /$ psql -d mi_db -U nombre_de_usuario
y veremos algo similar a esto:
mi_db=>

Ahora podremos meter las sentencias SQL para crear tablas, etc, etc... pero esto no es lo importante, ya que podemos acceder incluso como administrador psql y realizar esto, lo que logramos aqui es utilizar el acceso a un usuario especial al cual podemos asignarle ciertos privilegios por seguridad.

7. Como plus, instalaremos mediante apt-get admin3.
$sudo apt-get install admin3

el cual se agregará a nuestro menú de aplicaciones y herramientas del sistema. Para poder acceder en conexión pondremos los siguientes parámetros(los cuales configuramos en los pasos anteriores):

Address: localhost
MaintenanceDB: postgres
Username: postgres
Port: 5432
SSL: --- lo dejamos en blanco ---
Password: 12345

Algunos otros comandos utiles como psql:
\? - ver ayuda
\q - salir
\dt - ver tus tablas(siempre y cuando hayas entrado como en el paso 6, incluso sin User)

... los que vayan saliendo

OSUACH

Ahi les va la temporada de la orquesta sinfónica de la UACH, me vi obligado a poner un resumen a mano porque da la curiosidad que en la elegante página oficial no se encuentra actualizada:

  • Mayo 4: Gala de la Zarzuela (ni modo, ya paso).
  • Mayo 5: La Zarzuela de nuez.
  • Mayo 7: La musica y el cine. En Delicias(no se desesperen en Mayo 14 la repiten).
  • Mayo 9: Musica para mamá. Valses Mexicanos y algo mas... ya paso....
  • Mayo 14: La Música y el Cine. Auditorio de la Facultad de Educación Física. 20:30[Va a estar bueno, no se si sea gratis, investigaré y lo pondre aqui mismo]
  • Mayo 15: La Música y el Cine. Teatro de las 3 culturas de ciudad Cuauhtemoc 20:30.
  • Mayo 16: La Música y el Cine. Auditorio de Ojinaga 20:30.
  • Mayo 24: El aliento de Mercadante. Paraninfo Universitario 20:30.
  • Junio 8: Se estrena una obra de Frank Stemper que se compuso para la misma orquesta. Paraninfo Universitario 20:30.
  • Junio 16: Carmina Burana. Plaza Palomar 20:00.
  • Junio 17: Carmina Burana. Teatro Paso del Norte de Ciudad Juarez 18:00.
  • Junio 26: Gala de la Zarzuela. Teatro de Ciudad Delicias 20:30.

Los que tienen fecha en negritas es donde podrán tal vez encontrarme. Si quieren boletos gratis me avisan con tiempo para el evento que deseen.

De todos espero con ansias el 16 de Junio con la presentación de la Carmina Burana en el parque "el palomar" de esta ciudad. Tal vez me ahorre la explicación de lo quien es Carl Orff y quien es la tal Burana si visitan la wikipedia y se dan una vuelta por este videito:

http://www.youtube.com/watch?v=lF7_PhB9coo

Deberían darse una vuelta y disfrutar de lo que tal vez es la mejor "rola" de todos los tiempos.

WarCry, U.D.O, Mago. Pequeño relato.



Me levante medio descansado a medio dia, medio me alimente y reforce con bebidas medio energeticas dispuesto a soportar la épica jornada y partí hacia mi destino: el mba.

Como siempre la mala organización, no podía faltar la guerra de botellas de plástico (con soda y agua dentro) y que a entrada era a las 4 y entramos casi a las 6... luego comenzo WarCry que por cierto me sorprendio porque los había visto en youtube y no se me hacian la gran cosa... y siguen sin serlo pero tienen una gran fuerza interpretativa y pues con coritos clásicos metaleroeuropeoespañoles: "Nada hay bajo el sol que no tenga solución nunca una noche venció a un amanecer" ahi tienen a todo mundo como menso. Y continuando con la hermosa organización cuando tocaban la ultima rola se fue la luz y el sonido, volvio el sonido, pero no la luz... asi que tuvimos que esperar como una hora a que la repararan, luego salió U.D.O [que son la cruza de D.I.O con U.F.O y con Judas Priest y AC/DC] son mas heavy's y la voz horrible del cantante suena a Brian Johnson, no se como querian los weyes que corearamos sus rolas si nadie los conocía, eso si, todos estaban bien prendidos y al grito de U.D.O! U.D.O! se creyeron famosos... todavia me acuerdo que en la rola de "Mean machine" yo les entendia "megamachine" y pues eso coreaba, en otra rola sonaba algo asi como "ponte el sueter" jaja... Lo mas chido fue cuando se pusieron a tocar "für elise" de beethoven y todos la coreamos como si fuera fear of the dark.

De Mago que puedo decir... tocaron algunas rolas que dejaron pendientes hace un año: Astharoth, El lago, Maite Zaitut, Santa Compaña, algunas rarezas que nunca pense que escucharia en vivo como Te'snucare contra el Bidé, El Lago y Requiem (aunque en ese caso me siguen debiendo la rola intitulada del mismo nombre que el grupo)... además de las clásicas: Fiesta Pagana, Hasta que el cuerpo aguante, El que quiera entender que entienda, etc, etc, etc... pero ya nos tenian tan cansados que en lugar de corear a Mago la raza gritaba Aaagua Aaagua... después de 8 horas de espera no era para menos y con el agua embotellada y las sodas a 15 pesos... ya al final se fueron como siempre y volviero para empezar a tocar Eye Of Tiger, lo cual se me hizo curioso porque el día anterior también la habiamos tocado [ver post anterior] en la granja además de Santa Compaña... en fin, solo fue la finta porque segundos despues comenzaba molinos de viento.

¿Algo me faltó ? Yo no lo se, mi mente no llega a más...