sábado, febrero 16, 2008

Novedades de SQL Server 2008

Durante la semana pasada, asistí a un curso sobre las novedades de SQL Server 2008 en la sede de Microsoft España, en Pozuelo de Alarcón.

Uno va a estos cursos con muy pocas expectativas. Yo siempre he pensado que la letra entra con sangre, y eso no significa que haya que darle golpes al muchacho para que aprenda, sino que la única manera de aprender algo es hacerlo por uno mismo, ejercitarlo y repetirlo hasta que se domina. El número de repeticiones necesarias depende mucho de la habilidad que se tenga para la materia que es objeto de estudio, y por buena fortuna, para las bases de datos mi número de repeticiones es pequeño :)

Bueno... a lo que iba. Si tuviera que mencionar las cinco cosas que me parecieron más interesantes de SQL Server, yo diría:

5. Cache de Lookups en Analysis Services. Desde los antiguos DTS que existían en la versión 2000 hemos podido usar lookups. Esta característica de DTS nos permitía obtener el valor de un campo dependiente a partir del campo del cual depende, usando un origen de datos distinto al de la tabla principal. El ejemplo típico es un campo clave foránea que se usa para buscar un atributo en otra tabla, como cuando se usa el código de departamento para obtener el nombre. En MS SQL Server 2008 podemos colocar en cache la los datos de la tabla de referencia y reutilizarlos a lo largo de la vida del paquete. Además, los datos del lookup se leen de una sola vez. Ambas cosas mejoran sustantivamente el desempeño.

4. La administración por políticas de múltiples servidores... es algo parecido a aplicar políticas en un dominio y todos los equipos miembros tienen que adaptarse a ellas, sólo que aplicado a servidores SQL y sus objetos. Esto, claro, es para los administradores de bases de datos. Yo no soy un administrador, soy un desarrollador de sistemas de información, y por lo tanto me cuesta valorar en su justa medida las mejoras administrativas.

3. La gestión de atributos ralos (sparse). Un atributo, columna o campo "ralo" es uno que contiene un alto porcentaje de nulos. Los diseñadores de bases de datos "a la antigua" tendemos a pensar que la presencia de una columna rala en una tabla es consecuencia de una falla de diseño y una mala normalización, y solucionamos el problema creando otra tabla con una relación 1-a-1 parcial con la tabla principal, y colocamos el campo ralo en la nueva tabla. SQL Server 2008 ofrece otro modelo de gestión y almacenamiento para este tipo de atributos, o más en general, una manera diferente de tratar las especializaciones de una misma entidad, mediante el uso de columnas ralas. También permite crear índices sobre columnas ralas.

2. La posibilidad de declarar y popular una tabla "al vuelo". Muchas veces los programadores de bases de datos tenemos la necesidad de declarar una tabla y poblarla con datos en la misma instrucción. Hoy en día resolvemos el problema creando una tabla temporal y la llenamos mediante varias sentencias INSERT. SQL Server 2008 nos permite, en una sola sentencia, declarar una tabla y poblarla con datos usando la cláusula VALUES.

1. Nuevos tipos de datos para el manejo de fecha y hora. En las versiones previas de MS SQL Server con mucha frecuencia padecíamos problemas de incompatibilidad entre el tipo de datos Datetime y los tipos de datos de fecha usados por otros manejadores como ORACLE. Estos problemas eran frecuentes al migrar datos de un servidor foráneo a MS SQL. La nueva versión implementa tres tipos de datos nuevos para el manejo de fechas: Date, Time y Datetime2. Date y Time permiten manejar, o bien Fechas sin hora, o bien Horas sin fecha, con la consiguiente mejora en el uso de memoria. Datetime2 sustituye a Datetime pero sin las restricciones de rango de fechas del calendario gregoriano. También se incorpora un tipo de datos DatetimeOffset para manejar horas que están asociadas a una zona horaria, particularmente útil cuando se tiene sistemas distribuidos en varios países.

Más adelante entraré en detalles sobre cada una de estas características y otras más, cómo usarlas y en qué situaciones se le podría sacar el mejor provecho.

No hay comentarios: