miércoles, 30 de abril de 2008

Serie de webcasts sobre SQL Server 2008

Si estas subscrito a los boletines de Microsoft, habrás recibido un correo en el que te informan de una serie de webcasts gratuitos sobre el nuevo SQL Server 2008.

Solid Quality Mentors ha sido la elegida para realizar estos webcasts donde repasaremos todas las novedades tanto en el motor relacional, como en el ámbito de la inteligencia de negocio. Son sesiones altamente recomendables en las que vas a poder prepararte para la nueva oleada de aplicaciones de acceso a datos, viéndola desde el lado del servidor de base de datos. Aprenderás a cómo conseguir un rendimiento predecible del motor, a cómo realizar DataWarehouses de alto rendimiento, cómo diseñar aplicaciones de nueva generación, cómo administrar de forma eficiente grupos de servidores,...

Aqui teneis la agenda de los próximos webcasts:


Para más información, visita la web oficial sobre las jornadas pinchando aqui.

Por cierto, yo mismo voy a impartir los webcasts de "Declarative Management Framework", "Aplicaciones de Nueva Generación" y "Novedades para Desarrolladores".

NOTA: Rubén Garrigós ya realizó la semana pasada el webcast sobre novedades para DBA´s en SQL Server 2008. Puedes descargarte la documentación y el propio vídeo desde aquí

GUSENET: SQL Server 2008

El siguiente evento previsto para el grupo de usuarios GUSENET va a volver a estar dedicado a la plataforma de datos. Por un lado, yo mismo voy a dar una sesión sobre las novedades en SQL Server 2008 enfocadas a los administradores de bases de datos, mientras que Eladio Rincón va a hablar sobre la detección de problemas de rendimiento en SQL Server 2005.

Ambas sesiones son bastante recomendables, la primera porque con la profesión que hemos elegido viene intrínseca la necesidad de saber siempre cosas nuevas…y la segunda es todavía más recomendable puesto que nos mostrará un mundo nuevo dentro de SQL Server 2005 con el que aprenderemos a comunicarnos con el motor de BBDD y a decirle que nos hable sobre sus dolencias y como resolverlas ;)

Aquí os dejo la agenda del evento:

16:00 - 16:30  Bienvenida y registro

16:30 - 17:45  Novedades en SQL Server 2008 para administradores
                     (Enrique Catala)

17:45 - 18:15  Descanso

18:15 - 19:30  Detección de problemas de rendimiento en SQL Server 2005    
                     (Eladio Rincón)

Para más información: www.gusenet.com

Aquí os pongo el link de registro: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032378512&Culture=es-ES

Office Visio 2007 Professional SQL Server Add-in

Microsoft acaba de publicar un addin imprescindible para los DBA´s de SQL Server. Hoy me ha dado una alegria al ver lo facil que nos lo han puesto los chicos de Microsoft a los que nos dedicamos a esto de las bases de datos ;)

Con este addin, podemos generar facilmente y con la ayuda de un asistente, topologias complejas de SQL Server. Incluye incluso la posibilidad de plantear topologias con los nuevos SQL Server 2008 (todavia en CTP6) y Windows Server 2008 hyper-v (recientemente liberado)

En la zona de descarga (link) podemos tanto instalarnos el addin, como descargarnos un documento donde nos explica paso a paso como utilizarlo.

Tan solo os dejo dos imágenes para abrir boca

Untitled

y una muestra de informe resultado

Untitled

Visual Studio 2008 Express Editions ya disponibles

Microsoft ha hecho por fin oficial el lanzamiento de las versiones express de Visual Studio 2008, incluido en castellano. Nos dan la posibilidad de realizar instalacion web, offline, bajarnos el conjunto completo (incluido SQL Server 2005 express), versión de MSDN Express, documentación variada...

Sin duda una buena noticia para todos aquellos que quieren iniciarse con Visual Studio 2008 y no sabian por donde empezar ;)

https://www.microsoft.com/express/

Untitled

martes, 29 de abril de 2008

Convertir valores hexadecimales a uniqueidentifier

Es un problema poco frecuente, pero sí posible (mas adelante explicaré un caso real), que necesitemos convertir un valor hexadecimal a su representación uniqueidentifier.

Pongamos por caso, que disponemos del siguiente valor hexadecimal: 0xAF410B348743A84395FA5F37A3C32C8A. Si queremos obtener su representación uniqueidentifier, lo que tenemos que hacer es un simple cast de esta forma:

select convert(uniqueidentifier,0xAF410B348743A84395FA5F37A3C32C8A)

El valor uniqueidentifier que lo representa, dado al resolver la consulta, es el siguiente: 340B41AF-4387-43A8-95FA-5F37A3C32C8A

Como vemos, no hay problema alguno en realizar la conversión...salvo que el valor que estamos convirtiendo es un valor hexadecimal que puede que no tengamos almacenado en formato binario, sino como cadena de texto. Si el valor hexadecimal lo tenemos almacenado en una variable de tipo varchar, ya no es tan sencillo hacer la conversión:

Ejecutar la sentencia

select convert(uniqueidentifier,'0xAF410B348743A84395FA5F37A3C32C8A')

Nos lanzará este fantástico error:

Msg 8169, Level 16, State 2, Line 1
Conversion failed when converting from a character string to uniqueidentifier.

Podemos pensar (como es lógico), que lo suyo es convertir el valor primero a un tipo de datos binario (varbinary), y de este ya a su representación uniqueidentifier con el cast correpondiente.

Si lanzamos entonces la sentencia:

select convert(varbinary,'0xAF410B348743A84395FA5F37A3C32C8A')

Nos damos cuenta que el resultado no se parece en nada al valor que teníamos, y por tanto la conversión de este a uniqueidentifier no será válida:

select convert(uniqueidentifier,convert(varbinary,'0xAF410B348743A84395FA5F37A3C32C8A'))

Su resultado es 46417830-3134-4230-3334-383734334138, que no se parece ni de casualidad al valor correcto 340B41AF-4387-43A8-95FA-5F37A3C32C8A.

El proceso pues, requiere que transformemos "a manita" el valor hexadecimal almacenado en la cadena de texto, a su representación varbinary.

Para ello lo que debemos hacer es crearnos una función para tal fin, como puede ser esta:

 
ALTER FUNCTION [dbo].[HexStrToVarBin](@hexstr varchar(8000))
RETURNS varbinary(8000)
AS
BEGIN
DECLARE @hex char(2), @i int, @count int, @b varbinary(8000)
SET @count = LEN(@hexstr)
SET @b = CAST('' as varbinary(1))
IF SUBSTRING(@hexstr, 1, 2) = '0x'
SET @i = 3
ELSE
SET @i = 1
WHILE (@i <= @count)
BEGIN
SET @hex = SUBSTRING(@hexstr, @i, 2)
SET @b = @b +
CAST(CASE WHEN SUBSTRING(@hex, 1, 1) LIKE '[0-9]'
THEN CAST(SUBSTRING(@hex, 1, 1) as int)
ELSE CAST(ASCII(UPPER(SUBSTRING(@hex, 1, 1)))-55 as int)
END * 16 +
CASE WHEN SUBSTRING(@hex, 2, 1) LIKE '[0-9]'
THEN CAST(SUBSTRING(@hex, 2, 1) as int)
ELSE CAST(ASCII(UPPER(SUBSTRING(@hex, 2, 1)))-55 as int)
END as binary(1))
SET @i = @i + 2
END
RETURN @b
END


Una vez teniendo la función, ya podremos realizar la conversión tranquilamente:

select convert(uniqueidentifier,dbo.HexStrToVarBin '0xAF410B348743A84395FA5F37A3C32C8A'))

Por otro lado, el proceso contrario, es decir, convertir de varbinary a valor hexadecimal como cadena de texto lo podemos hacer con la función no documentada fn_varbintohexstr() que espera como argumento de entrada un valor hexadecimal (varbinary) y devuelve su misma representación, pero como cadena de texto.


SELECT master.dbo.fn_varbintohexstr(0xAF410B348743A84395FA5F37A3C32C8A)

El caso real del que os hablaba al principio es el de que querais realizar un join de la información proveniente de sysprocesses con tablas de información de jobs como por ejemplo sysjobs. En ese caso no tendreis mas remedio que realizar estas conversiones dado que en sysprocesses los identificadores de los jobs se encuentran en valor hexadecimal, mientras que los identificadores de las tablas de sysjobs (y sucesivas) se encuentran como uniqueidentifier.

domingo, 27 de abril de 2008

Seminario "Maximice el potencial de su servidor SQL Server"

Los pasados dias 23 y 24 de Abril, realizamos dos seminarios en las oficinas de Microsoft Barcelona y Microsoft Ibérica en Madrid en la que hablábamos de las características que podemos aprovechar para exprimir a tope nuestro motor de base de datos preferido...SQL Server ;)

Nos centramos principalmente en características avanzadas como vistas indexadas, mirroring asíncrono + instantaneas de bases de datos, las ventajas de la indexación con columnas incluidas, particionado de datos y escalabilidad y rendimiento en inteligencia de negocio.

Las presentaciones las hemos subido a esta web para que los asistentes puedan disponer de ellos tal y como se anunció:

lunes, 14 de abril de 2008

Liberar el espacio ocupado por la instalacion del SP1 de Windows vista

Seguro que una vez has instalado el SP1 de Windows Vista decides ya no volverlo a desinstalar. Puesto que este va a ser el caso, te recomiendo que lances el ejecutable vsp1cln.exe.

vistacleanup

Una vez lanzado, se habran liberado mas de 1.5Gb de archivos de desinstalación del service pack, ahorrándote espacio valioso de tu disco duro.

Entre otras cosas, notarás que si usas un portatil se ha deshabilitado la opción de hibernar. Para poder volver a tener la opción activa has de hacer dos cosas:

  1. Abrir un cmd.exe como administrador y teclear "powercfg -h on"
  2. Desactivar la suspensión hibrida: Opciones de energia->cambiar configuracion delplan->cambiar config avanzada

Dicho esto, volverás a disponer de tu valioso botoncito de "hibernar".