sábado, abril 07, 2007

MSSQL 2005 y Oracle Express

He estado usando el MSSQL 2005 beta2 – próxima a liberarse - de forma regular desde hace ya algunos meses y la verdad me han gustado bastante las mejoras que Microsoft ha agregado a la nueva versión, de entre las mejoras, por lo menos de las que a mi me llaman la atención, puedo listar las siguientes:

  • Unificación del entreprise manager y sql query analyzer - inclusive tiene una mejor apariencia, el único punto malo es que no cuenta con Intellisense el editor de sql -
  • La introducción del CLR en la base de datos, me parece muy buena idea el poder escribir ciertos procedimientos, por ejemplo en C#, aunque esta funcionalidad puede también llevar a muchos problemas si no se usa apropiadamente, es decir primero tratar de solucionar el problema con T-SQL, si finalmente no es posible, entonces implementarlo con algún lenguaje de .NET
  • El nuevo manejo de errores en T-SQL con bloques TRY-CATCH
  • Las nuevas funciones de T-SQL para realizar "ranking" - posiblemente esto es de lo que mas extrañaba de Oracle -
  • Una característica que me gusta mucho es Common Table Expressions, muy útiles para simplificar y entender queries muy grandes
  • Otra nueva característica es la introducción del PIVOT y UNPIVOT para rotar datos, es decir convertir lineas a columnas y viceversa - Igual que en Excel -
  • Y finalmente creo que la mas importante de todas es el manejo de versiones de las lineas y el uso de candados a nivel del linea - en vez de nivel de tabla -, es decir al poner un candado ahora, solo se hace sobre las lineas que estamos afectando, lo cual no bloquea que otro proceso pueda leer las mismas lineas, y mas aun, el proceso de lectura toma una "versión" de la linea, para que en caso de que esta se modifique durante el proceso de lectura, el proceso de lectura nos de datos consistentes dándonos las lineas tal y como estaban al iniciar la lectura.

Quizás valga la pena realizar un post mas detallado con algunos ejemplos de esta pequeña compilación de los cambios en SQL2005 - que a mi vista y opinión personal, son los mas importantes para mi -.

Por otro lado, pero en el mismo tema de las bases de datos, tengo que admitir que mi base de datos preferida es Oracle, mi preferencia la puedo resumir por unas pocas razones:

  • Su escalabilidad y estabilidad increíble, tanto en Windows, Linux y Unix, ambientes donde la he manejado
  • Su falsa complejidad, es decir si es un tanto compleja, pero la complejidad se elimina con el entendimiento de como funciona la base de datos - el motor, algoritmos, estructuras de memoria, etc -, entendimiento que muchas veces es omitido por quienes manejan solo MSSQL, ya que este oculta muchas de las cuestiones de configuración de la base de datos, algunas personas pueden decir que que por ese motivo Oracle es muy compleja, pero yo creo que el entendimiento es un conocimiento útil si se maneja MSSQl, Oracle o cualquier otra base de datos
  • Por ultimo mi primer base de datos relacional fue MSSQL 6.5 y con MSSQL las bases de datos que he manejado han sido de apenas un par de Gigabytes con un par de decenas de usuarios concurrentes, con Oracle en cambio he manejado bases de datos de mas de 350 Gb con varios cientos de usuarios, y la respuesta y control de Oracle ha sido excelente

Pues bien ya sin mas preámbulo, Oracle la semana pasada lanzo la versión beta de su Oracle Express Database (OracleXE), basada en la versión Oracle 10gR2, esta es una base de datos gratuita y enfocada a pequeños grupos de usuarios, el instalador es muy simple practico - solo 2 preguntas donde instalar la base de datos y el password de administración -, además incluye un ambiente de desarrollo llamado HTMLDB para aplicaciones web sin necesidad de escribir código

Las licencias de Oracle siempre han sido amigables con los desarrolladores, debido a que se podía descargar de Oracle la base de datos sin ninguna restricción de tiempo y funcionalidad, y se podía usar sin cargo alguno para propósitos de desarrollo y pruebas, solo exigían el pago de licencia si la base de datos se usa en producción

Lo que ofrece OracleXE aparte de ser gratuita es que el instalador mide apenas 130MB a diferencia de los 3 CDs que se tienen que descargar de las versiones no libres de Oracle, como mencione el instalar esta "super" simplificado, y viene configurada para utilizar poca memoria, situación que mas escuchaba como queja de quienes querían probar Oracle, ya que instalación por omisión de la versión no libre, si mal no recuerdo viene preconfigurada para utilizar 250 Mb de RAM - aunque quien conoce de Oracle sabe que es muy sencillo disminuir o aumentar este valor -.

Dentro de las limitantes que OracleXE ofrece es que los datafiles no pueden ser mayores de 4GB y solo permite una instancia por máquina, pero pues siendo una base de datos comercial ofrecida de forma gratuita no esta mal. Un problema que si observe es que una vez instalada, los datafiles de System, Temp y SysAux ocupan prácticamente 1GB de espacio en disco, entiendo que son los mismos datafiles de la base de datos comercial que contienen la funcionalidad de la base de datos - paquetes, librerías, espacio temporal, rollbacks, etc - y que son necesarios, y por lo que vi de momento en Oracle no existe ninguna intención de tratar de reducir el tamaño de ellos, lo que a la mejor puede ser un punto en contra para OracleXE.

Si se desea conocer más sobre OracleXE, en ésta página hay información y tutoriales.

No hay comentarios.: