Surviving the Night

El blog de Pablo Doval sobre .NET, SQL, WinDbg...

The Last Mile: Esos pequeños detalles en SQL Server 2008 RC0

¡Albricias! ¡Albricias! ¡Que toquen las campanas! ¡Que corra la voz!... bueno, he de admitir que llego un poco tarde para daros la noticia, pero con gran regocijo, júbilo y satisfacción me uno a Miguel y Jorge para dar la bienvenida a la última release de evaluación de SQL Server 2008: la RC0.

Como ya sabréis, cuando un producto pasa de CTP (Community Technological Preview) a RC (Release Candidate), podemos dar por supuesto que todas las características definitivas del producto están implementadas, y ya solo se procederá a los ajustes y corrección de bugs para asegurar la calidad del producto antes de salir al mercado y de que se ponga en producción. Pero lo importante para nosotros es que ya podemos jugar con la practica totalidad de sus características, ir formándonos en el producto, estudiando que características podemos aplicar a nuestros entornos, etc...

Durante estos días creo (y espero) que se escribirán cantidad de artículos relacionados con las grandes características, como el Policy-Based Management, Capture Data Change, el almacenamiento FILESTREAM, etc... Lamentablemente no creo que yo pueda aportar mucho a corto plazo; en este momento la verdad es que lo que menos tengo es tiempo para escribir una entrada en el blog acerca de ninguna de estas características, y menos de hacerlo de una manera suficientemente digna.

Sin embargo, desde el domingo he estado jugando un poco con esta versión RC0, y he encontrado muchos 'pequeños detalles' que me han encantado y que me gustaría compartir con vosotros, así que vamos allá...

Depuración Integrada

La primera sorpresa agradable es la posibilidad de depurar código TSQL directamente desde la interfaz del SQL Server Management Studio. Si bien es cierto que ya podíamos hacerlo desde el Visual Studio, no deja de ser práctico e interesante el poder realizar la depuración, consultar variables locales y watches, así como el call stack del SQL desde el entorno que utilizamos tan a menudo para desarrollar nuestros procedimientos y consultas.

No se a vosotros, pero a mi el mero hecho de ver en la barra de menú principal del SSMS un menú llamado Debug ya me hace feliz :)

Recomendaciones de Índices en el Plan de Ejecución

No se si se apreciará bien en la captura de pantalla que os adjunto, pero si os fijáis en la ventana de abajo (la que muestra el plan de ejecución), veréis que en la caja de texto nos aparece una línea en verde. Bien, esa línea nos indica que nos vendría bien un índice determinado: si pulsamos con el botón derecho y le pedimos información adicional sobre el índice, nos llega a generar el script que tendriamos que ejecutar para implementar el índice.

En mi ejemplo, el script sería el siguiente:

/*
Faltan detalles del índice de SQLQuery2.sql - (local)\SQLExpress.Performance (DEMOSTENES\Plain Concepts (53))
El procesador de consultas estima que la implementación del
siguiente índice podría mejorar el costo de la consulta en un 46.7053%.
*/

/*
USE [Performance]
GO
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[Orders] ([orderdate])
INCLUDE ([custid],[empid],[shipperid])
GO
*/

Cómo se puede ver, ¡hasta nos realiza la estimación de la mejora de rendimiento en caso de implementar el índice!

ExecutionPlan

No se como lo veréis vosotros, pero a mi estos detalles pequeños me encantan; en este caso, la tecnología no es nueva... en el fondo esto consulta unas DMVs que nos muestran esta información de índices no utilizados, etc. que es lo que emplea el Database Engine Tuning Advisor para darnos sus recomendaciones sobre índices. Por lo tanto, nada nuevo bajo el sol. Sin embargo, lo que me fascina es el hecho de que esté integrado en el SSMS, que es desde donde yo suelo lanzar el 80% de mis consultas en tiempo de desarrollo. De éste modo tenemos la oportunidad de ver estos mensajes de advertencia sobre nuestras políticas de índices antes de llegar a fases mas tardías de análisis y optimización. 

Monitor de Actividad

El monitor de actividad, ese gran desconocido. Lo cierto es que yo no lo empleaba; generalmente, para ver la actividad de los diferentes procesos de SQL Server recurría a los conocidos sp_who y sp_who2, y desde la versión 2005 también a diferentes DMVs e informes del servidor.

Sin embargo, ¡puede que hasta yo mismo me vuelva un adepto del monitor de actividad y las interfaces gráficas de administración! He estado jugando con al Monitor de Actividad que viene con la versión RC0 y he de decir que estoy gratísimamente sorprendido. No solo nos muestra de un vistazo rápido el estado de todos los procesos, sino también de las consultas mas costosas ejecutadas recientemente sobre el servidor, las esperas por recursos (waitstats), uso de E/S sobre los ficheros de la base de datos y más información de un modo muy conveniente y práctico, en la linea del nuevo Performance Monitor de Windows Vista y Windows Server 2008.

Os pongo una pequeña captura de pantalla para que veáis el aspecto que tiene:

ActivityMonitor 

Conclusiones

Vaya por delante que este post no ha pretendido ser exhaustivo sobre nuevas características de SQL Server 2008 RC0. No se trata de un artículo de 'Primeras Impresiones', sino de una oportunidad de compartir con vosotros un par de cositas que me he encontrado :)

Cuando comencé a trastear con el producto me encontré con estos detalles (y alguno más); estaba esperando ponerme a explorar iFTS principalmente, así como otras características de mayor peso, pero finalmente preferí perderme con estos detalles (que normalmente no reciben exposición en artículos y blogs) y compartirlos con vosotros. Espero que este post, aunque no haya seguido mi línea, os sirva al menos para conocer algunos pequeños desconocidos y para abriros el apetito por SQL Server 2008 RC0.

Por cierto, si os animas a trastear con él, podéis descargarlo desde el este enlace. Enjoy!

Rock Tip:

Esta vez me gustaría dedicar el post a todo el grupo de producto de SQL Server; a pesar de que esta release ha tenido un tiempo de desarrollo relativamente corto (¡sobre todo si lo comparamos con el de SQL Server 2005!), no dejan de ser unos años de esfuerzo, cariño y dedicación que dentro de muy poquito culminarán con el 'nacimiento' de la versión RTM. Por ello, este post lo acompaño del tema 'The Last Mile', de Cinderella. Un poquito más... una milla mas, y podremos empezar a poner SQL Server 2008 en producción como locos ;)

Posted: 12/6/2008 20:35 por Pablo Alvarez | con no comments |
Archivado en:
Comparte este post: