martes, diciembre 29, 2009

Estudiantes a Certificarse!

Si estas estudiando tienes la opcion de un 50% de descuento en tus examenes de certificacion Microsoft. Esto significa que puedes certificarte por solo US$ 40

Te debes registrar, agendar y tomar el examen antes del 30 de Junio del 2010.

Mas info en el siguiente link:

http://www.prometric.com/microsoft/student

Saludos!

Isa

jueves, julio 16, 2009

Esos $##@@&%$ Transaction Logs!!!

A quien no le ha tocado alguna vez que se haya llenado el disco por que los Transaction logs han crecido y crecido?? Tanto en SQL Server como Exchange.

Hoy me toco ver una base de datos SQL Server de solo 600Mb con un Transaction log de 54GB, no es primera vez que me toca ver algo así, había visto Tlogs de 30GB para bases de 2GB y había apagado mas de un incendio por disco lleno debido a esto mismo, es un tema que siempre se esta repitiendo y no muchos administradores entienden por que esta pasando.

 

Por que crece el Tlog?

Cuando una aplicación o una sesión en SQL Server envía una transacción a la base de datos, el motor lee los datos, los carga en memoria (Buffer Cache) y son modificados, esta modificación es registrada en el TLog en disco, cuando el Checkpoint ocurre, las paginas modificadas que están en memoria son escritas al archivo de data, de esta forma, si el server tiene algún problema, al levantar nuevamente con la información de los archivos de data mas el tlog es capaz de reconstruir la información que estaba en memoria y no había sido escrita a disco todavía, dejando la base de datos consistentes. Estas transacciones son las que hacen crecer el archivo.

 

Y cuando se “limpia”?

Eso depende (que me encanta esa palabra :P )

Si el recovery model de la base de datos esta en simple, las transacciones que ya finalizaron y fueron escritas a disco, son eliminadas del archivo, dejando ese espacio libre, sin embargo el tamaño físico del archivo no cambia.

Si el recovery model esta en Full o Bulk-logged, estas transacciones son limpiadas cuando se realiza el backup del Tlog.

 

Pero estoy haciendo un backup full todas las noches, porque no se limpia!

Ese es un error que cometen muchos administradores, piensan que el backup full también respalda el Tlog, sin embargo no es así.

El respaldo Full de la base de datos solo respalda la parte activa del Tlog, es decir, aquellas transacciones que aun no han sido escritas a disco.

 

Entonces que debo hacer para que el archivo no crezca?

Cambiar el recovery model a simple ;)

 

Pero tenia entendido que la recomendación para bases de datos de producción es con recovery model full.

Exactamente!! Pero si no los respaldas ni haces nada con ellos, para que los tienes en full??

 

Ok, creo que voy entendiendo, explícame mejor que es lo que debo hacer entonces para no seguir teniendo este problema.

Primero que nada, resolvamos el problema que tienes, disco lleno. Lo mas probable es que tengas problemas con la base por lo mismo, no creo que valga la pena en este momento realizar un respaldo de ese Tlog, así que lo vamos a truncar a la mala con el siguiente T-SQL

BACKUP LOG <basededatos> WITH TRUNCATE_ONLY

Ya tenemos el espacio liberado en el archivo, ahora devolvamos al sistema este espacio libre “achicando” este archivo a través del siguiente T-SQL

DBCC SHRINKFILE (<nombrelogicoarchivodelog>)

Con esto ya tenemos nuestro archivo chiquitito. Sin embargo comenzara a crecer nuevamente cuando empiecen a entrar los usuarios, mira, ya comenzó a crecer :D

Ahora para tener esto controlado y no vuelva a crecer y llenar el disco programemos un respaldo del Tlog por ejemplo cada una hora y guardémoslo junto a los otros respaldos, cuando necesitemos recuperar la base de datos podremos recuperar hasta casi la ultima transacción que se ejecuto, pero eso es para otro post.

 

También tengo un problema similar con Exchange, se me llena el disco con los archivos que se generan.

En Exchange el que los Tlog no se estén eliminando es una señal de que los respaldos no están terminando correctamente, estos son archivos de 5M para Exchange 2003 o anteriores y de 1M para Exchange 2007.

Al realizar el respaldo de la base de datos se aplican las transacciones y los archivos aplicados son eliminados de disco, por lo que no debieran eliminarse estos archivos a mano sin tomar algunas precauciones.

Los Tlog están relacionados al storage group mas que a un mailbox store en particular, por lo que para que se eliminen estos archivos deben estar correctamente respaldados todas las bases dentro del storage group.

La forma correcta de eliminar los Tlog en Exchange esta descrita en el KB 240145 para Exchange 2000 y 2003.

Si queremos evitar que se generen estos archivos, considerando que este hecho no nos permitirá recuperarnos de un desastre hasta la ultima transacción, podemos cambiar la modalidad de log a circular siguiendo el KB 314605 para Exchange 2000 y 2003 y en este Artículo para Exchange 2007

 

Conclusión.

Como conclusión final, la recomendación para servidores de producción de SQL Server es el recovery model full realizando backups periódicos de los Tlogs, para Exchange, deshabilitando Circular Logging y validando que los respaldos terminen correctamente y se estén respaldando todas las bases del Storage Group.

 

Saludos!!

Isa

 

Aclaración: Los diálogos que utilizo en el blog corresponden a conversaciones conmigo misma y no con segundos y/o terceros. A veces son media lenta para entenderme y debo explicarme con manzanitas :S

jueves, julio 02, 2009

Apoya a Chile en Imagine Cup 2009

La final mundial del concurso Imagine Cup 2009 está por comenzar! Ya están en camino los equipos de estudiantes que viajan a El Cairo, Egipto, desde distintos países del mundo, y Chile no está ausente! 4 estudiantes de la Universidad Técnica Federico Santa María, de Valparaíso nos estarán representando con su interesante proyecto PRISMO.

Apoyemos nuestro equipo local votando en el concurso “People’s Choice” por el vídeo de PRISMO. Ingresa en este link: http://peopleschoice.imaginecup.com/default.aspx selecciona Chile en “Select a Location” y te aparecerá el vídeo para verlo y votar. Se puede votar 1 vez todos los dias!

El ranking actual de los Top 5:

1.       NISLab++ (Japón)

2.       Movement Studio (México)

3.       Evotech (Algeria)

4.       OTS (Egipto)

5.       Vital Lab (Rusia)

La final de Imagine Cup se desarrollará entre el 3 y 7 de julio, y este año más de 300 mil estudiantes de todo el mundo están participando!!!

Alejandro Pacheco, Gerente de Relaciones Académicas de Microsoft Chile está acompañando al equipo chileno, y enviándonos fotos e informaciones que postearemos en Facebook y Twitter

Saludos!!

Isa

viernes, junio 19, 2009

eBooks Gratuitos!!!

http://csna01.libredigital.com/?urws8un4p7 (Resource Kits de OCS 2007)http://csna01.libredigital.com/?urrs4gt63d (Programing OCS 2007 R2)
http://csna01.libredigital.com/?urmvs17u33 (Understanding Microsoft Virtualization Solutions)

Disfrutenlos!

Isa

domingo, junio 14, 2009

Nuevo ciclo - Sacale el Jugo a .....

Comienza un nuevo ciclo de charlas, no te lo pierdas!

Conferencia GLAD Invita: Sacale el jugo a Windows Server: File y Print Server

Martes 16 de Junio, 18.30 horas en NewHorizonts Teatinos 550 Santiago, Chile

Ven a Conocer cómo puedes obtener el máximo provecho, mejorar el uso y la administración de tus servidores de Archivos e Impresión, Veremos como puedes evitar que se almacenen archivos no deseados en tus servidores (con File Screening) y racionalizar el uso del espacio usando Cuotas de almacenamiento por carpetas. Revisaremos cómo mejorar la seguridad en el acceso a los datos (usando ABE) y cómo implementar un sistema de archivos distruibuido y redundante (DFS) , También veremos cómo implementar remotamente Impresoras usando políticas de grupo y más.

Presentadores: Isabel de la Barra (MCT) y Gonzalo Balladares (MVP) Regístrate aquí:
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032417649&culture=es-cl

Agrégalo a tu calendario Outlook:
http://msevents.microsoft.com/CUI/AddToOulook.aspx?EventID=1032417649&pg=search&culture=es-cl

Saludos!!

Isa

miércoles, junio 03, 2009

Proyecto Natal

Uno de los proyectos de Microsoft que ha dejado boquiabiertos a miles de players en la E3 Conference y con ganas de que pronto salga es Natal.

No es una nueva consola, sino que trabaja con la XBox, un nuevo concepto en interactividad, sin controles! reconocimiento de rostros y de voz, esta genial.

Siempre que tomo alguna decisión aparece algo que me hace cuestionar lo que decidí, nunca es tarde para arrepentirse dicen ;)

Pero, de que les estoy hablando??

Aca una muestra! Disfruten el Video!

Mas info sobre esta conferencia y las cosas que se mostraron en  GamerTag

Saludos!!

Isa

lunes, junio 01, 2009

Lista de regalos 2009

Si bien el año pasado no hice una lista de regalos como en el 2007 la que tuvo bastante buenos resultados, aunque para variar me perdí la fiesta, este año si la hare :D

El año pasado si hice mi fiesta pero vino muy pocos amigos (1) sin embargo igual la pasamos bien con mi gente roleando un poco.

Este año quizás sea un evento un poco mas ñoño, ya verán por que ;)

Acá va la lista!

0) Pasar ese día con toda la gente que me quiere y el día de la fiesta también.
1) Una WII !!!!!!!
2) Juegos para la WII :D
3) El tercer libro de Fairy Oak
4) Draconomicón: El Libro de los Dragones (AD&D)
5) Un auto (un volvo plateado con chofer incluido)
6) Un computador con muchos gigas en RAM y mucho disco (para levantar varias maquinas virtuales)
7) Juegos de Salón (ya tengo Backgammon y UNO entre otros)
8) Libros!!
9) Chocolates :D
10) Figuritas de Star War
11) Cualquier otro regalo que me guste, como películas o algo de ropa.

Un día cercano al cumpleaños me juntare a tomar once con mi gente y en la noche nos quedaremos probando los juegos con mis amigos que vayan a saludarme, tiraremos una carnecita al fuego acompañado de bebestibles.

Saludos!!

Isa

miércoles, mayo 13, 2009

Jugando Fly For Fun en Windows 7 - La solucion

En vista del intento de ayer, de los errores que mando y de que para jugar desabilite antivirus, firewall y otras cosas mas, me puse a ver cual era la forma correcta de hacer funcionar el ZaAa y Flyff en Windows 7, aca les dejo el procedimiento.

Vamos al panel de control, Sistema y seguridad y entramos a buscar y corregir problemas.

En programas, seleccionamos ejecutar programas creados en versiones anteriores de windows.

Click en siguiente.

esperamos que termine de revisar
Nos vamos hasta el final donde dice ZaAa, lo seleccionamos y click en siguiente
Click en probar configuracion recomendada
una vez que selecciono XP SP2 click en Start the program para ver si funciona ok, si te pide confirmacion para ejecutarlo darle aceptar y veras que parte sin problemas.


cerramos el ZaAa y volvemos a la configuracion seleccionando Si, guardar esta configuracion para este programa
Esperamos que termine de guardar
Y click en cerrar para terminar.

Y a Jugar!!!

Nos vemos en Linea!

Isa

martes, mayo 12, 2009

Jugando Fly For Fun en Windows 7

A traves de facebook un amigo me pregunto que tal era Windows 7 para jugar, como estoy en la semana de probar windows 7 y conocerlo para prepararme para el install fest decidi instalar el Fly For Fun de Zoomby y jugarlo.

El ZaAa me dio algunos problemas, el antivirus griton me alegaba por toodo y el ZaAa con mas errores, le podia aceptar a todo lo que me preguntaba y logre que partiera, sin embargo a la hora de jugar no lanzaba nunca el juego :(

Como a esa altura ya tenia ganas de jugar por que me habia hecho a la idea no se ocurrio mejor cosa que desactivar antivirus y Firewall y logre que se ejecutara sin problemas :D

Una vez dentro del juego tenia algunos dramas para apretar algunos botones, al parecer la grafica estaba un poco desfasada con respecto a mi mouse pero al final logre pillarle el tema (apuntar un poquito mas arriba) y logre jugar sin muchos inconvenientes.

Mi mercenario subio de nivel 46 a 47 y me sali, mucho juego para un dia, ahora a estudiar y otro dia averiguo cuales son las configuraciones que hay que colocar en el firewall para que no de problemas ;)

Saludos!!!

Isa

viernes, mayo 01, 2009

Install Fest Windows 7 RC


Ven con tu notebook o tu "Tarro" para que instales junto a nosotros la version candidato a Release de Windows 7.

Mientras te apoyamos podras asistir a demos y tendras a tu disposicion expertos tanto por el lado de desarrollo como de TI para tus dudas y consultas.

Lugar: Mariano Sanchez Fontesilla 310 piso 6 Las Condes, Microsoft Chile

Fecha: 16 de Mayo en 3 opciones de horarios:

Option 1: 10 a 12 hrs
Opcion 2: 12 a 14 hrs
Opcion 3: 14 a 16 hrs

Nos vemos!

Isa

domingo, abril 26, 2009

Tiempos Modernos

Esta imagen ya la habia publicado



En ese momento hice una descripcion de como seria ahora. Aca les dejo la imagen actualizada.



Saludos!

Isa

lunes, abril 20, 2009

No soy Soporte Tecnico

Holas!

Hace unos dias mi amigo MAZ publico en su blog un articulo con el mismo titulo que este y otro amigo, Eduardo Diaz lo sigio en el tema, ahora me toca a mi este eterno problema que nos toca a los computines que no trabajamos haciendo soporte.

Informatica o Computacion es muy amplio, asi como la medicina, tiene varias areas donde desarrollarse, estan las jefaturas de proyecto, desarrollo, gestion, administracion de servidores, especializaciones como mensajeria, bases de datos, estan las distintas plataformas, unix, Windows, Mac, Mainframes, soporte tecnico, hardware, comunicaciones, etc.

Los que tienen los conocimientos para ver los temas relacionados con los pcs generalmente son los de soporte tecnico, ellos tienen los conocimientos para dar soporte al XP o al vista que generalmente uno tiene en casa, aunque muchas veces la version con la que tienen experiencia no es la home edition sino que la profesional.

Asi que si tiene un problema en el pc de su casa llame a soporte tecnico ya que cualquier informatico no le sirve, cuando tengo problemas con el pc de mi casa no lo veo yo, por que tendria que ver los de otras personas? Yo veo servidores, no escritorio!!

Saludos!

Isa

sábado, abril 18, 2009

Webcast Exchange 2010 Beta

Hace unos momentos me llego la siguiente Invitacion de Jorge Diaz:

Seremos los primeros a tener un Webcast con lo que viene con Exchange 2010. No serán los 4 tenores pero serán:
Carlos Dinapoli (6 X 1)
Pablo Vernocchi (6 X 1)
Gonzalo Balladares
Jorge Patricio Diaz (The Wonder Boy from Corinthians)

La URL del Meeting es:
https://www.livemeeting.com/cc/mvp/join?id=SS942G&role=attend

Les advierto que este NO es un evento oficial de Microsoft, pero... para que esperar?

Título : Primera Vista de Exchange 2010
Id. : SS942G
Hora de inicio : 22 de abr de 2009 19:00 (CLT)


Saludos!!

Isa

viernes, abril 17, 2009

Registra y presenta el examen beta 71-680: TS: Windows 7, Configuring

En pocas palabras, teniendo tu cuenta, ingresa a www.prometric.com, usa el PROMOCODE: WIN7J

El registro abre el 27 de Abril

Puedas dar el examen entre el 5 y el 18 de Mayo

Es totalmente gratuito y la duración maxima es de 04 horas

Te interesa? pues agendalo en tu outlook ya!

Más info:

http://blogs.technet.com/betaexams/archive/2009/04/15/register-for-beta-exam-71-680-ts-windows-7-configuring.aspx

Saludos!

Isa

Nota: Este post lo plagie del blog de Elias :)

miércoles, abril 15, 2009

Exchange 2010 Beta

Holas!

Hoy a traves de diversos medios, tales como facebook, boletines, mail, amigos, blogs, etc, me entere que fue liberado el beta de Exchange 2010. Para todos aquellos que quieran comenzar a conocerlos les dejo el link:

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=1898ed2c-2f88-48ac-824e-d3d20fad77d7

Para mas informacion ver el sitio http://www.microsoft.com/exchange/2010

saludos!!

Isa

martes, marzo 31, 2009

Trencitos

Todo comenzo una navidad en que papa nos trajo de regalo a los "niños" un tren a escala, una Chatanuga Chu Chu, aquella maquina negra que traia una especie de oleo para simular el humo de la chimenea nunca pudo se tocada por las manos infantiles a quienes iban destinadas.

Este fue el primer tren de papa, los años siguientes fue aumentando la coleccion hasta que llego el dia en que subio a una locomotora de verdad.


La 851 era su regalona, en la ACCPF participo de voluntario y en sus ultimos años viajo en ella, como niño con su juguete, tenia un carro a su cargo el cual despues de su partida llevo su nombre.

Ya hace 11 años tomo el ultimo tren e hizo sonar el silbato por ultima vez, nos dejo rodeado de sus trenes soñando en su ultimo viaje a bordo de la 851.

Papa, te hecho de menos.

Isa

jueves, marzo 26, 2009

Enviando mail usando un script

Muchas veces me ha tocado configurar script que necesitan enviar mails e incluso atachar archivos al mismo, no es algo complicado y es facil de encontrar a traves de google, pero seguramente muchos no lo conocen y de seguro mas de alguien lo encontrara super practico :D

Como administradores es super util automatizar algunas tareas, los invito a visitar el Script Center de Microsoft donde encontraran este y muchos otros scripts muy utilies.

Este script usa CDO (Collaboration Data Objects), el codigo lo escribimos en un archivo de extension .vbs y lo ejecutamos usando el comando cscript.

cscript C:\Alertas\alerta.vbs

Veamos ahora como armar este mail y enviarlo.

Primero que nada creamos el objeto que usaremos para enviar el mail, para ello crearemos una instancia que llamaremos objEmail que sera un objeto CDO.Message.

Set objEmail = CreateObject("CDO.Message")

Cuando se envia un mail lo primero es indicar quien lo envia y a quien, esto se hace en los atributos From y To del objeto creado.

objEmail.From = "helpdesk@fabrikam.com"
objEmail.To = "administrator@fabrikam.com"


Por supuesto esto no basta, necesitamos agregarle el tema y por supuesto el contenido del mensaje.

objEmail.Subject = "Server down"
objEmail.Textbody = "Server1 is no longer accessible over the network."


Seguramente queremos tambien agregar algun archivo atachado a este mensaje.

objEmail.AddAttachment "C:\Scripts\Output.txt"

Ya tenemos nuestro mail, ahora hay que enviarlo, una de las formas es usando un smtp local (IIS), con lo cual no necesitamos agregar nada mas a nuestro script, aunque si debemos configurar el smtp para que reciba los mails y lo reenvie a donde corresponda, pero si deseamos usar nuestro servidor de correo que ya tenemos funcionando debemos agregar unas lineas mas.

objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "serversmtp"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update


Algunos servidores por seguridad piden autenticacion, si este es el caso otro par de lineas nos ayuda con esto.

objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "fabrikam\kenmyer"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "&gr54#wgha"


Y por ultimo, enviamos el mail

objEmail.Send

Y ya estamos listos para ejecutar nuestro script.

Saludos!

Isa

miércoles, marzo 04, 2009

Nuevamente Second Shot

Si estas pensado en certificarte, primero date una vuelta por este link:http://www.microsoft.com/learning/mcp/offers/secondshot/default.mspx

Al obtener tu voucher de Second Shot te permite rendir un segundo examen sin costo en caso de que no pases el primero, super util si tienes algunas dudas, esto te permite ir la primera vez mas tranquilo y si no la pasas lo das de nuevo pero ya con la experiencia de haber realizado el examen.

No sale en el sitio una fecha limite para esta oferta, pero hay que aprovecharla antes que se termine.

Saludos!!

Isa

jueves, febrero 26, 2009

Libros

- Es idea mia o ese libro ya lo tiene?
- Si lo tengo - Dije saliendo del local y sacando de mi mochila un libro muy similar al que recien habia comprado.
- Y por que se lo compro?
- Por que este esta empastado y este otro no.
- Pero, se va a quedar con 2 libros iguales??
- No, mira.

Tomo mi celular y marco el numero de mi hermana.

- Alo?
- Hola! Oe, la Su tiene el tercer libro de Eragon?
- No se, Suuuuuuuuuu!!! Tienes el tercer libro de Eragon?? - Se escucha un no por respuesta.
- Okas! entonces ya le tengo regalo de cumpleaños, chaus!!!

Solucionado 2 problemas, me deshice de un libro repetido y me ahorro regalo de cumpleaños :D

Los libros son portales magicos a otros mundos, son portales magicos al conocimiento, son portales magicos a la entretencion.

Son portales magicos.

Cuando tomo un libro es como si entrara en el, mi imaginacion me va mostrando lo que voy leyendo como si fuese una pelicula, y mejor que eso ya que es como si estuviese alli y no en una pantalla cuadrada proyectada delante de mi por muy grande que sea.

Cuando niña en la casa de mis papas habia una habitacion llena de libros, la biblioteca, en ella habian enciclopedias y libros de los que quisiera sacar informacion o que pudiera leer cuando quisiera.

Todas las semanas mi papa llegaba con un libro, ese dia lo esperaba ansiosa y ese mismo dia no dormia hasta terminarlo.

Asi conoci a Asimov y sus Robots, a Larry Niven y su hermoso mundo, a Arthur Clarke y su odisea, a Harlan Ellison y sus visiones, Donald Glut, James Kahn, George Lukas en la Guerra de las Galaxias, H.G Wells en la guerra de los mundos, Emilio Salgari y el tigre de la malasia y Alejandro Dumas con el Conde.

Todos ellos formaron parte de mi juventud.

Asimov me sigio acompañando incluso en la Universidad con su tratado de Fisica, luego conoci a Tolkien y el anillo, a Rowling y su magico mundo, Paolini y los jinetes, Elizabeth Gnone y las Gemelas y el ultimo escritor en agregarse a la lista Sthepenie Meyer con sus vampiros.

Los libros son magicos.

Ya le he regalado algunos libros a mis nietas, espero que ellas cuando crescan sepan disfrutar de esa magia como lo hizo mi madre y mi padre, como lo hago yo, como lo hace mi hija, mis hermanas, mi sobrina ...............

Y como lo haces tu.

Saludos!!!

Isa.

sábado, febrero 07, 2009

Luna

La luna llena siempre ha tenido un atractivo especial, desde cielo con su cara sonriente ilumina la noche, al mirarla pienso que otras personas en lugares muy lejanos tambien la estan mirando y sin saberlos estamos conectados.


Aunque estemos muy separados en la distancia, la luna es una de las pocas cosas que podemos ver el mismo tiempo, y no es un programa en la tv o una pagina en internet, es real y la estamos viendo al mismo tiempo.

La luna no es de Queso y tampoco me refiero a la Luna de Miel sino a esa blanca y brillante esfera blanca que desde el cielo nos sonrie.

Abre tus cortinas y deja entrar la luz de la luna, no enciendas la luz y mirala junto a mi, nos separan muchos kilometros, pero estamos uno junto al otro viendo como esa luz nos ilumina, y al mirar al cielo vemos su sonrisa.

Al mirar la luna llena pienso en ti y en ese dia que juntos miramos la luz de la luna entrar por la ventana.

Saludos!!

Isa

domingo, febrero 01, 2009

El Modelo de Datos

El siguiente paso fue la DATA, para realizar las pruebas necesitamos datos, una base lo suficientemente grande como para que las actividades que realizaramos mostraran resultados medibles.

La Bestia es una maquina bastante poderosa, asi que esta base no deberia ser pequeña.

El modelo

La empresa ficticia es de desarrollo y venta de software. Nuestra base esta compuesta por 5 tablas.

Desarrollador: Esta tabla contiene los datos de los 103 desarrolladores.

CREATE TABLE [dbo].[DESARROLLADOR](
[IDDESARROLLADOR] [int] NOT NULL,
[NOMBREDEV] [varchar](100) NOT NULL,
CONSTRAINT [PK_DESARROLLADOR] PRIMARY KEY NONCLUSTERED
(
[IDDESARROLLADOR] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO


Aplicacion: Nuestros desarrolladores han desarrollado 553 Aplicaciones.

CREATE TABLE [dbo].[APLICACION](
[IDSOFTWARE] [int] NOT NULL,
[IDDESARROLLADOR] [int] NOT NULL,
[DESCRIPCION] [varchar](250) NULL,
[VERSION] [varchar](10) NULL,
[NOMBRESW] [varchar](100) NULL,
CONSTRAINT [PK_APLICACION] PRIMARY KEY NONCLUSTERED
(
[IDSOFTWARE] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO


Clientes: Durante el tiempo que ha estado funcionando la empresa, hemos tenido 31224 Clientes

CREATE TABLE [dbo].[CLIENTE](
[CODIGOCLIENTE] [int] NOT NULL,
[RUT] [int] NULL,
[NOMBRECLIENTE] [varchar](100) NULL,
CONSTRAINT [PK_CLIENTE] PRIMARY KEY NONCLUSTERED
(
[CODIGOCLIENTE] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO


Facturas: Hemos vendido 2 millones de facturas a nuestros clientes, como los productos son muy bueno :P

CREATE TABLE [dbo].[FACTURA](
[NUMEROFACTURA] [int] NOT NULL,
[CODIGOCLIENTE] [int] NOT NULL,
[FECHA] [datetime] NULL,
CONSTRAINT [PK_FACTURA] PRIMARY KEY NONCLUSTERED
(
[NUMEROFACTURA] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO


Licencias: En cada factura podemos tener una o mas licencias, no se cuantas licencias se han vendido........... aun :D

CREATE TABLE [dbo].[LICENCIA](
[IDLICENCIA] [int] NOT NULL,
[CODIGOCLIENTE] [int] NOT NULL,
[IDSOFTWARE] [int] NOT NULL,
[NUMEROFACTURA] [int] NOT NULL,
[LICENCIA] [uniqueidentifier] NOT NULL CONSTRAINT [DF_LICENCIA_LICENCIA] DEFAULT (newid()),
CONSTRAINT [PK_LICENCIA] PRIMARY KEY NONCLUSTERED
(
[IDLICENCIA] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO


ya con el modelo se definieron algunas relaciones entre las tablas a través de llaves foráneas.


ALTER TABLE [dbo].[LICENCIA] WITH CHECK ADD CONSTRAINT [FK_LICENCIA_DETALLE_F_FACTURA] FOREIGN KEY([NUMEROFACTURA])
REFERENCES [dbo].[FACTURA] ([NUMEROFACTURA])
GO

ALTER TABLE [dbo].[LICENCIA] WITH CHECK ADD CONSTRAINT [FK_LICENCIA_RELATIONS_CLIENTE] FOREIGN KEY([CODIGOCLIENTE])
REFERENCES [dbo].[CLIENTE] ([CODIGOCLIENTE])
GO

ALTER TABLE [dbo].[LICENCIA] WITH CHECK ADD CONSTRAINT [FK_LICENCIA_VENTA_DE__APLICACI] FOREIGN KEY([IDSOFTWARE])
REFERENCES [dbo].[APLICACION] ([IDSOFTWARE])
GO

ALTER TABLE [dbo].[FACTURA] WITH CHECK ADD CONSTRAINT [FK_FACTURA_COMPRAS_CLIENTE] FOREIGN KEY([CODIGOCLIENTE])
REFERENCES [dbo].[CLIENTE] ([CODIGOCLIENTE])
GO

ALTER TABLE [dbo].[APLICACION] WITH CHECK ADD CONSTRAINT [FK_APLICACI_RELATIONS_DESARROL] FOREIGN KEY([IDDESARROLLADOR])
REFERENCES [dbo].[DESARROLLADOR] ([IDDESARROLLADOR])
GO



Para la generacion de los datos, de las tablas mas pequeñas, desarrollador y aplicacion, se uso excel, despues esos datos fueron cargados, el archivo generado en excel tenia lineas como las siguientes:

insert into desarrollador (idDesarrollador, NOMBREdev) values (1,'luis rivas')
insert into desarrollador (idDesarrollador, NOMBREdev) values (2,'robinson barruylle')
insert into desarrollador (idDesarrollador, NOMBREdev) values (3,'matilde piñats')
insert into desarrollador (idDesarrollador, NOMBREdev) values (4,'josefina parada')
insert into desarrollador (idDesarrollador, NOMBREdev) values (5,'jeanette antipan')
insert into desarrollador (idDesarrollador, NOMBREdev) values (6,'josé bravo')


Sin embargo al usar el mismo metedo para cargar la tabla de clientes se nos fueron los tiempos a la chuña. Habiamos generado 65.xxx clientes, sin embargo ya llevabamos media hora cargandolos y cortamos el script quedando cargados solo 32.xxx. El script de poco mas de 6Mb se guardo para usarlo despues en las pruebas.

Nos quedaba la carga de los 2 millones de facturas con sus detalles de licencias y este metodo no nos serviria, a menos que quisieramos quedarnos toda la semana cargando los datos :P

Generamos 2 scripts, uno en Transact-SQL, el otro creo que el awk, pero el que se uso fue el de SQL ya que el de awk generaria las lineas de insert y estariamos en el mismo punto anterior.

El script usado fue el siguiente:

DECLARE @counter int;
DECLARE @cliente int;
DECLARE @nlic int;

SET @counter = 1;

WHILE @counter <= 2000000
BEGIN
SET @cliente = (RAND()* 31224);
INSERT INTO dbo.FACTURA (NUMEROFACTURA,CODIGOCLIENTE,FECHA) VALUES (@counter,@cliente,getdate())
SET @nlic = (RAND()* 12);
WHILE @nlic >= 1
BEGIN
INSERT INTO dbo.LICENCIA (CODIGOCLIENTE,IDSOFTWARE,NUMEROFACTURA) VALUES (@cliente,(RAND()* 553),@counter)
@nlic = @nlic - 1
END
SET @counter = @counter + 1
END;
GO


Despues de poco mas de 1 hora ejecutandose llevabamos mas de 110000 facturas y mas de 730000 licencias por lo que lo dejamos y procedimos a retirarnos para continuar otro dia.


Durante el ultimo proceso tomamos algunas muestras de los contadores de performance los cuales les comento a continuacion, teniamos 2 sesiones terminal server abiertas, en una de ellas trabajaba Chubasco y en la otra yo, el script se estaba ejecutando en mi sesion.

Tiempo de la muestra: 31 de Enero 2009 entre las 16:30 y las 17:45
Processor: %Processor Time: _Total : llego a un maximo de 3,4 durante el proceso.


La grafica anterior nos muestra una linea azul que representa el promedio de la cola al disco Logico donde tenemos el archivo de Data, cuando comenzo la carga describio una curva que fue creciendo hasta llegar mas o menos a 1,6 y alli pareciera que se mantiene mas o menos constante, si agregamos a la grafica los valores de los discos fisicos tenemos una curva que coincide.


Respecto a la memoria, observamos que esta va decreciendo en la medida que vamos cargando los datos.

Podemos observar una caida fuerte, esta caida se debio a la ejecucion de una query que me mostraba la informacion de las lineas de licencias que llevabamos hasta ese momento.

La query ejecutada fue la siguiente:

SELECT dbo.APLICACION.NOMBRESW, dbo.CLIENTE.RUT, dbo.CLIENTE.NOMBRECLIENTE, dbo.APLICACION.VERSION, dbo.APLICACION.DESCRIPCION,
dbo.DESARROLLADOR.NOMBREDEV, dbo.FACTURA.NUMEROFACTURA, dbo.LICENCIA.LICENCIA
FROM dbo.FACTURA
INNER JOIN dbo.CLIENTE ON dbo.FACTURA.CODIGOCLIENTE = dbo.CLIENTE.CODIGOCLIENTE
INNER JOIN dbo.LICENCIA ON dbo.FACTURA.NUMEROFACTURA = dbo.LICENCIA.NUMEROFACTURA
INNER JOIN dbo.APLICACION ON dbo.LICENCIA.IDSOFTWARE = dbo.APLICACION.IDSOFTWARE
INNER JOIN dbo.DESARROLLADOR ON dbo.APLICACION.IDDESARROLLADOR = dbo.DESARROLLADOR.IDDESARROLLADOR
GO



Demorando 14 segundos y devolviendo cerca de 600000 lineas.



El tamaño del archivo de Data crecia en la medida que los datos se iban ingresando, este crecimiento no solo es de los datos, si se fijan en la figura enterior del reporte de tamaño de las tablas que fue tomado durante el proceso veran que el espacio usado por los indices incluso es mayor al usado por los datos. Los indices en las bases de datos es un tema interesante que da para mas de un futuro articulo :D



Las transacciones que se ejecutaba por segundo en esta sesion fluctuaban entre 162 a 166.

Eso es lo que les puedo contar por ahora. Si tiene curiosidad sobre algun contador que no inclui, coloquenlo en los comentarios, lo mismo si tienen alguna query interesante que podriamos agregar al set de pruebas final.

Saludos!!

Isa

miércoles, enero 14, 2009

Sácale el jugo a SQL Server: Administrando Infraestructura y BI

En esta sesión sabrás como administrar de mejor forma tus servicios de SQL Server. Configuraciones, logs, tuning, control de transacciones, entre otros.

Además podrás ver las principales virtudes de SQL Server como Integrador, Analizador y Reportador de datos y de Inteligencia de Negocios.

No desaproveches la oportunidad de sacarle el jugo a tu actual plataforma de SQL Server.

Oradores: Juan Andrés Valenzuela (Microsoft MVP), Felipe Zúñiga e Isabel de la barra.

Hora y Lugar Fecha: Martes, 20 de enero de 2009
Hora: 18:30 - 21:30
Ubicación: Microsoft Chile
Calle: Mariano Sánchez Fontecilla 310, Piso 6. Las Condes
Ciudad: Santiago, Chile



REGISTRATE AQUÍ: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032400575&culture=es-cl

Facebook: http://www.new.facebook.com/event.php?eid=43466999665#/event.php?eid=55744668560

Saludos!!

Isa