PASS European Conference 2006 by Raona

Friday, March 03, 2006

Cierre

Y así se cerraba el PASS European Conference 2006. Dos días de conocimientos sobre SQL Server 2005, con sus más y sus menos, pero sin duda interesantes. Y a esperar al año que viene, si es que se deciden a celebrarla de nuevo.

High Availability in SQL Server 2005

La última conferencia a la que asistí fue la de Don Vilen, en la que se discutieron las tecnologías de alta disponibilidad de SQL Server 2005. La ponencia, de nivel 3, fue bastante interesante ya que fue un buen repaso a la extensa lista de tecnologías que SQL Server 2005 incorpora al respecto de este tema. Una conferencia “generalista” para cerrar los dos días de congreso.

Don Vilen es Program Manager del motor de almacenamiento de SQL Server en Microsoft. Y propuso algunas ideas interesantes en cuanto a disponibilidad, además de cómo solucionarlas con SQL Server.

Antes que nada, dejar claro que la disponibilidad no es un tema sólo de producto, sino que hay muchos aspectos relacionados. Lo ilustra la siguiente “pila” (stack) de disponibilidad, en la que se muestran las distintas categorías de las que depende:

  • Hardware
  • Software de sistema
  • Software de aplicaciones
  • Operadores

Los problemas más habituales que a partir de estas categorías podemos deducir constituyen las barreras a la alta disponibilidad:

  • Database failure or disaster
  • Availability at scale
  • Data access concurrency limitations
  • Database manteinance and operations
  • User or application error
  • Upgrades
  • Tuning

SQL Server 2005 proporciona distintas herramientas para solucionar estas barreras. Cada herramienta tiene su objetivo, sus pros y sus contras. Las podemos agrupar en tres grupos según la respuesta que dan a la alta disponibilidad:

a) Basic: No failover and a potential data loss. Son técnicas totalmente manuales y que pueden tener pérdida de datos en caso de caída el sistema. Son lentas de recuperar pero fáciles de implementar.

  • Backup / restore: incorpora diferentes mejoras en SQL 2005, como por ejemplo la opción RESTORE VERIFYONLY.

  • Detach / copy / attach: Uno de los sistemas más simples para tener una copia de los datos. Desvincular la base de datos, copiar los ficheros y volver a vincularla.

b) Better: Manual failover and potencial data loss. Es posible recuperar la información, pero de forma manual y de nuevo con una eventual pérdida de datos.

  • Peer-to-peer replication: Funcionalidad nueva en SQL 2005. Replicación en la que todos los participantes son iguales. El esquema de datos es común, pero cada conjunto de datos sólo puede actualizarse en uno de los servidores miembro cada vez. Permite balanceo de cargas y alta disponibilidad. La posibilidad de pérdida de datos es baja.

  • Log shipping: La idea es hacer backup del log en la base de datos origen y aplicarlo en la de destino. La replicación es siempre a nivel de base de datos y la base de datos de destino es de sólo lectura.

  • Database mirroring – high performance mode: Ver más adelante.

c) Best: Automatic failover and zero data loss. En este grupo de métodos aseguramos que la disponibilidad es total y que no hay pérdida de datos.

  • Database mirroring – high availability mode: Ver más adelante.

  • Failover clustering: El clásico mecanismo de clustering, tiene el “down time” más bajo y una pérdida de datos prácticamente nula.


El mecanismo de Database Mirroring es una de las novedades más destacables de SQL Server 2005, aunque en la versión RTM no se soporta; se espera que sí se soporte en la a partir del Service Pack 1. Mediante Database Mirroring se puede tener una copia actualizada de la base de datos en un servidor de Standby. En caso de fallo del servidor principal, la redirección al servidor de Standby puede ser manual o automática, transparente al cliente. Lo mejor de este mecanismo es que no necesita ningún hardware especial, aunque sí necesita de un tercer servidor SQL Server que haga de testigo (witness). El servidor testigo, que puede ser un SQL Server Express, es quien dice qué servidor es el “bueno”. Hay tres modos de Database Mirroring:

  • High-Availability Mode: Seguro, no hay pérdida de datos, “failover” automático (con testigo).

  • High-Protection Mode: Seguro, no hay pérdida de datos, “failover” manual – puede haber un tiempo de no-disponibilidad.

  • High-Performance Mode: Hay pérdida de datos, “failover” manual.


En definitiva, como se puede ver, el tema de la alta disponibilidad en SQL Server 2005 da bastante de sí. El ponente, Don Vilen, acabó de explicar los distintos mecanismos y las posibilidades que se tienen al combinarlos entre ellos, pero como resumen creo que más o menos lo aquí expuesto ya sirve...

Thursday, March 02, 2006

End-User Reporting with SQL Server 2005 Report Builder

De nuevo tuve la ocasión de escuchar a Bob Meyers, esta vez hablando de la segunda gran novedad de los SSRS: el Report Builder (la primera novedad eran los Report Controls, ver este post). Aunque Bob no fue especialmente ameno, la conferencia –de nivel 2– sí fue bastante provechosa.

Bien, ¿cuál es el objetivo del Report Builder? Para los usuarios de los informes está el Report Viewer. Para los desarrolladores está el Report Designer. Y para los “Business Users” y los usuarios expertos, está el Report Builder.

El Report Builder es una nueva herramienta de diseño dirigida a aquellos usuarios de la empresa que necesitan de la capacidad de realizar consultas e informes por sí mismos. Utiliza un “modelo de datos” previamente preparado por el personal técnico para modelar su informe. Su objetivo no es reemplazar el Report Designer (más potente) ni las tablas dinámicas de Excel (análisis), sinó cubrir el vacío entre ambos. Está completamente integrado con los Reporting Services, y puede atacar SQL Server 2000 y 2005 y Analysis Services 2005.

Físicamente, el Report Builder es una aplicación Windows, basada en el .NET Framework 2.0, que se lanza a partir del Report Manager. La interfaz de usuario sigue las guías de estilo de Office. Soporta tablas y gráficos, y una vez diseñado el informe puede almacenarse en el servidor.

Los informes generados con Report Builder son RDLs como cualquier otro, que posteriormente pueden editarse con el Report Designer. Incorporan la capacidad de hacer infinitos “drill-through” a través de la información relacionada con los datos del informe.

El diseño del modelo se realiza con el Model Designer, herramienta basada (¡como no!) en Visual Studio 2005. Permite definir un modelo con entidades, campos y roles a partir de un origen de datos. El modelo se almacena el el Report Server, y sobre el mismo se puede definir seguridad para determinar qué datos puede ver el usuario.

En definitiva, como se puede deducir, es el invento del siglo en cuanto a Reporting Services se refiere. No queda más que decir que ¡tienes que probarlo!

Avoiding Recompiles in SQL Server

Otra ponencia extremadamente específica. Personalmente, creo que Greg Low (consultor de Readify, MVP, MSDN Regional Director, etc.) no es quizás de los mejores ponentes, pero hay que reconocer que los conocimientos los tiene…

Bien, algunas ideas que dio Greg... Desde hace unas cuantas versiones de SQL Server, es de todos conocido que antes de ejecutar un Stored Procedure, el motor lo compila, lo cual significa elegir un plan de ejecución. Tras la compilación, los Stored Procedure se almacenan en una cache de forma que se reutiliza el plan de ejecución siempre que se puede y se evita su recompilación.

SQL2005 incorpora algunas mejoras en este tema. Por ejemplo, la recompilación a nivel de sentencia en vez de a nivel de batch. Aún y así, hay muchos casos en que no se usa la cache entre llamadas, por ejemplo las consultas “ad-hoc” requieren que el texto sea exactamente el mismo (SQL Server es “case sensitive” y “space sensitive”). Por tanto hay que estudiar los accesos de nuestras aplicaciones con cuidado, ya que fácilmente se puede incurrir en recompilaciones...

De hecho, el mecanismo en el que se basa la cache de SQL Server es complejo. Parte del concepto de coste en “ticks”, y según se reutiliza un Stored Procedure, y en función de los costes que supone su compilación, se incrementa o decremente el coste, jugando entre 0 y 31 "ticks".

La verdad es que hay muchos aspectos que pueden intervenir en la recompilación de sentencias. La explicación de Greg, bastante exhaustiva, hizo que nos diésemos cuenta de la complejidad de la situación. No puedo decir más que si queremos optimizar nuestros accesos a base de datos en este punto, vale la pena estudiar con detalle las posibilidades…

Wednesday, March 01, 2006

How Aggregation Designs Works in AS2005

Empezamos el viernes con esta conferencia sobre los Analysis Services (SSAS) 2005. Como en todo, tuvimos dos tipos de ponencias en el PASS European Conference: las generalistas, que te introducían en una parte del producto a nivel “macro”, y las especialistas, que ahondaban en un aspecto específico de SQL Server, o sea a nivel “micro”. Esta ponencia fue claramente de las últimas: Nos centramos durante una hora en uno de los pasos del asistente de generación de cubos de Análisis Services: el de diseño de la agregación. Parece mentira que un paso de un asistente dé para tanto, ¿no?

El ponente de esta específica conferencia fue Reed Jacobson, de Hitachi Consulting, un auténtico experto en BI sobre SQL Server, y también un gran ponente.

En primer lugar Reed centró la problemática de la explotación de datos, y para ello ejemplarizó el tema a través de los conceptos de base de datos vs. Excel. Con una base de datos, disponemos de la capacidad de tratar un alto volumen de datos, pero la capacidad de cálculo es limitada. Con Excel pasa lo contrario, tenemos una gran capacidad de cálculo pero podemos tratar un volumen de datos limitado.

La solución a esta problemática son, obviamente, los Analysis Services. Una de sus principales bazas es el precálculo de resultados, que permiten bajar enormemente los tiempos de respuesta en el caso de que tratemos con grandes volúmenes de datos. Precalcular los valores que se quieren estudiar necesita que las operaciones que queramos realizar sean aditivas, cosa que no siempre es posible. Si las operaciones que se desean estudiar no son aditivas, aún cabe la posibilidad de ver si se pueden derivar de operaciones que sí lo sean…

Una vez sabemos que podemos agregar los datos, podemos afinar el sistema mediante controlar cómo los AS2005 calculan estas agregaciones. Para ello disponemos de un conjunto de atributos en el diseño de los cubos (IsAggregatable, AttributeHierarchyEnabled, AttributeHierarchyVisible) que nos ayudan en el tema. No me voy a extender en su uso, para ello están los Books on line, pero queda dicho.

En cambio sí es interesante saber que de los posibles conjuntos de permutaciones que Analysis Services utiliza para generar las agregaciones, en realidad sólo aplica aquellas cuyo tamaño estimado sea menor que el 30% de la tabla de hechos. Esta regla descarta aquellas agregaciones que llevarán más tiempo usarlas que realizar los cálculos directamente sobre la tabla de hechos, y “de fábrica” viene que esto ocurre cuando el tamaño de la agregación es superior a este número.

Otro hecho destacable de los AS2005 es que por defecto, los atributos no están incluidos en el “pool” de valores a agregar. Este es un cambio respecto la versión anterior (la 2000) en que por defecto sí estaban incluidos. Si se desea que se agreguen, por tanto, hay que decírselo explícitamente.

Bien, aunque el contenido de la conferencia aún dio para más, creo que lo importante está dicho, con lo que lo dejo aquí. Repito, ¡lo que da de si un aspecto tan específico de los Analysis Services!

Embedding Reporting in your Application with SQL Server 2005 Visual Studio Report Controls

Realmente parecía que hubiesen hecho un concurso de a ver quien tenía el título de la conferencia más largo. Si así hubiese sido, esta ponencia de Bob Meyers se hubiese llevado la palma. Sinceramente el título lo dice todo. Y por una vez, el contenido de la conferencia fue el esperado: cómo incrustar informes de SSRS

en una aplicación (WinForms o WebForms). E incluso el nivel estaba bien puesto: un 2, o sea, la cosa iba a ser sencillita, digamos, lo justo para abrir boca sobre el tema.

Bob Meyers es un chico Microsoft. Venía de una empresa llamada Active Views, comprada por Microsoft por lo que ha acabado siendo el Report Builder, así que Bob como es natural ha ido a parar al equipo de SSRS, donde es “Development Lead”. También a Bob tuve la ocasión de entrevistarlo para la dotNetMania, entrevista que también está a la espera de ser publicada (o no).

Objetivo: integrar Reporting Services en las aplicaciones cliente (Windows o Web). Incorporar a una aplicación la capacidad de realizar informes y consultas con resultados atractivos. Nos “cargamos” con esto los “Crystal Reports” y controles del estilo, pero podemos ir aún más lejos. Posiblemente podamos también sustituir gran parte de las “grids” que tengamos en nuestra aplicación…

Solución: Los Report Controls. “Run-time free”, pueden mostrar informes remotos (cargados de un Report Server) o locales (sin necesidad de servidor). Estos últimos se integran completamente con los proyectos estándar de Visual Studio: se construyen a partir de los mismos orígenes de datos de la aplicación y soportan todo tipo de interactividad.

Tuesday, February 28, 2006

Reporting Services: Really Advanced Techniques

De técnicas realmente avanzadas, nada. Ni siquiera se puede decir que la ponencia de los italianos Davide Mauri y Alessandro Rezzani fuera de nivel 4, como se anunciaba. La verdad es que fue de las conferencias más decepcionantes, que quizás no lo hubiese sido tanto si el título y su descripción se hubiese ajustado más a la realidad. En fin, el “desajuste” entre descripciones y contenidos reales fue algo generalizado en el PASS European Conference de este año, y posiblemente una de las áreas de mejora que se les puede pedir a esta gente de cara a futuras convocatorias…

Bien, en cuanto a la ponencia en sí lo que pretendía era mostrar una solución de generación “dinámica” de informes diseñada por los autores, como respuesta a las “limitaciones” de los Reporting Services.

El problema de los Reporting Services está en que en tiempo de diseño se deben definir las consultas y sus parámetros de forma estática. Davide y Alessandro propusieron un diseño (con componentes software) mediante los cuales se construyen los reports en tiempo de ejecución. De esta forma las consultas pueden definirse de forma dinámica y tener una potencia superior en el momento de generar los informes.

Personalmente encontré que la idea era bastante acertada, pero que las desventajas de este sistema –su complejidad, el hecho de ser un sistema “ad-hoc”, y el no poder trabajar si se utiliza con el Report Manager– posiblemente hará que sólo lo utilicen aquellos que tengan una necesidad imperiosa de disponer de este mecanismo, y esto si encuentran este “framework” (los autores prometieron en el turno de preguntas y respuestas que publicarían el código).

Using XML + WS + CLR to Expose and Consume a RSS Feed

Con este largo título empezaron las conferencias de la tarde, de la mano de Tony Rogerson. Tony es MVP y el responsable del UK SQL Server Users Group, y es uno de los ponentes que tuve la ocasión de entrevistar para la revista dotNetMania (hay que ver si sale publicada o no).

Rápidamente descubrimos que el objetivo de la ponencia era en realidad mostrar las nuevas características del motor de SQL Server 2005: las mejoras en el uso de XML, los Web Services y el CLR (los puntos que prometía el título de la ponencia) e ilustrarlo todo con un ejemplo. En cualquier caso, la verdad es que la ponencia de Tony destacó por su claridad, hay que reconocer que tiene "tablas" para hablar en público.

Como resumen de la conferencia, y empezando con las funcionalidades XML de SQL Server 2005, podríamos decir que las mejoras que esta versión incorpora hacen que el uso de XML pueda ser una realidad efectiva. El nuevo tipo de datos XML y las operaciones asociadas permiten tener estructuras de datos nativas XML dentro del motor y trabajar más o menos cómodamente con ellas. Así pues el tener columnas de tipo XML sirve realmente para algo.

En cuanto a WebServices. Se basan en el mecanismo llamado ENDPOINT, que lo que hace es publicar WS a través del ya conocido HTTP.SYS. Una llamada a WS en SQL Server 2005 es básicamente una llamada a un Stored Procedure… La cuestión que gira alrededor de los WS es qué uso hay de darles. ¿Hay que usarlos como DAL? ¿Se pueden exponer a Internet? Este es el punto actual de debate…

Finalmente, en cuanto al CLR de nuevo hay que ubicar correctamente el posible uso de sus funcionalidades. En campos como el tratamiento de strings sin duda se puede hacer un buen uso de la potencia del CLR, pero se deja en entredicho de nuevo un uso generalizado del CLR. Porque ¿te atreves a poner dentro del motor de SQL Server un pedazo de código que podría echar a bajo tu servidor? ¿Justifica la potencia del CLR sus riesgos?

Monday, February 27, 2006

SQL Server 2005 Features for SOA

Marin Mamic, de las Croatia Airlines, aprovechó esta ponencia para realizar una introducción a las capacidades SOA (Service Oriented Architecture) de SQL Server 2005. La verdad es que fue una sesión muy introductoria aunque estuviese clasificada como de nivel 3.

No voy a extenderme en la primera parte de la presentación, la introducción a los conceptos de SOA. Hay suficientes recursos en Internet para que cada uno se documente.

En cuanto a SQL Server 2005, las características que incorpora en cuanto a SOA, y que se mencionaron en la ponencia, son:
  • Soporte HTTP nativo: Conjunto de mecanismos a través del cual podemos exponer objetos SQL Server (Stored Procedures, funciones, etc.) como Web Services. Los exponemos tanto a través de HTTP como a través de HTTPS, y lo hacemos a través del HTTP.SYS, no a través de IIS (con las ventajas y desventajas que esto supone). Por decirlo de alguna forma es ofrecer un mecanismo de acceso a datos "technology neutral" pero conservando la seguridad, etc. de SQL Server.
  • Service Broker: Mecanismos de gestión de mensajes robusto: seguro, asíncrono, fiable y escalable. Gestiona mensajes para que lleguen en orden y agrupados adecuadamente.
  • Integración con el CLR: Ejecución de código gestionado en la base de datos. Esto permite que los Web Services no queden limitados por el hecho de escribir el código que los implementa con T-SQL, sinó que al poder escribirlos con .NET se puede implementar una lógica de negocio compleja.

Keynote según Kevin Ashby

Después de que el presidente del PASS Kevin Kline (sí, como el actor), nos diese la bienvenida, otro Kevin, en este caso Kevin Ashby, nos dió el primer baño de SQL Server. Kevin Ashby, para más referencia, es el Enterprise Technology Strategist del equipo EMEA CATM.

La presentación del Kevin de Microsoft se centró en la migración de Oracle a SQL Server. De hecho, su ponencia se puede encontrar en el "IT's ShOwtime!" de la web de Microsoft, ya que también la impartió en el IT Forum '05. El enlace es este.

El resumen de la presentación sería lo fácil que es la migración de bases de datos Oracle, en especial gracias a las herramientas que Microsoft proporciona (al menos esta es la teoría :-) ). En cualquiera de los casos, si tienes delante una migración de estas características, puedes empezar a meterte en el tema dándole una ojeada al vídeo de Kevin... ¡Te servirá para centrar las ideas y hacerte la película de lo que te espera!

Sunday, February 26, 2006

Networking...

Antes de entrar en el contenido, dejar testimonio de la presencia española en la conferencia.


De izquierda a derecha: Lleonard, Pep, el Guille, Jordi y Salvador.

Hemos estado en el PASS European Conference 2006

El 23 y 24 de febrero se celebró en Barcelona la edición europea del encuentro anual del PASS, la Professional Association for SQL Server. Este encuentro, llamado PASS European Conference 2006, expone de la mano de los expertos de Microsoft y de reconocidos autores y MVPs de todo el mundo, el state-of-the-art de SQL Server.

Este año, con la reciente salida al mercado de SQL Server 2005 el pasado noviembre, la cita tenía un interés especial, ya que salen a la luz nuevos temas que vienen de la mano de esta nueva versión. Toda la información que recogimos vamos a exponerla en este blog, esperamos que te sea útil.

Y para finalizar, dar las gracias a Paco Marín de la revista dotNetManía, ya que asistimos al evento en nombre y representación de esta revista. Fruto de esta colaboración, aparecerán en los próximos números de la revista una serie de entrevistas (a Kevin Kline -presidente del PASS-, Tony Rogerson -presidente del SQL Server UK Users Group- y Bob Meyers -Development Lead de SQL Server en Microsoft-) que realizamos a los ponentes del PASSEC2006. Pronto en tu quiosco... :-)

Raona.