Administración basada en políticas ( SQL Server 2008 )

by 24. julio 2010 18:43

 

Como muchos otros productos de Microsoft, ahora SQL Server y a partir de su versión 2008 nos permite manejar políticas a nivel motor.

Estas políticas son una herramienta muy potente para los DBA y equipos de desarrollo ya que con ella vamos a poder controlar y garantizar por ejemplo nuestras buenas prácticas de trabajo.

Una de las cosas que sucede es que en una empresa se definen estándares de trabajo para la base de datos o también llamados buenas prácticas, ahora bien, ¿cómo hacemos para poder controlar esto y también dentro de lo posible que no se generen cosas fuera de estas buenas practicas?

El manejo de políticas en SQL Server nos va a permitir hacer esto y mucho más.

Yo utilizo bastante esta herramienta y la verdad que está muy piola

En este post les voy a dejar una serie de links al respecto como así también un video demo de cómo se utiliza “Policy Management”.

Enterprise Policy Management Framework with SQL Server 2008

Blog de Policy Management

SQL Server Central Management System

Tags:

SQL 2008 | Videos | How To

FileStream

by 23. julio 2010 03:46
SQL2008

 

El día 22 de julio de 2010 participe en la maratón de SQL Server 2008 R2 en donde me ha tocado hablar sobre FileStream.

Esta nueva funcionalidad está disponible a partir de SQL Server 2008 y nos permite alocar datos fuera de la base de datos BLOB (imágenes, videos, etc.) pero de forma totalmente integrada donde podemos aprovechar las mejores opciones de administración de SQL Server.

Aquí dejo una serie de links sobre este tema como así también los ejemplos que mostré en el video.

SQL Server 2008 - Improved BLOB Support via FILESTREAM

FILESTREAM Storage in SQL Server 2008

How to: Enable FILESTREAM

FILESTREAM Overview

Tags:

Comunidad | SQL 2008 | Videos | New Sql 2008

Tech-ed Online

by 22. julio 2010 21:26

 

Este evento es uno de los más importantes a nivel mundial sobre tecnologías Microsoft.

Una de las cosas muy piola que tiene es que sus sesiones están disponibles para descarga y vista online.

Podrán encontrar muchas sesiones de SQL Server y de un nivel medio / avanzado.

Es un recurso súper interesante para aquellos que quieren estar actualizar y con demos y presentaciones de alto nivel, la única macana es que están todas en inglés.

Aquí les dejo los link

Database Platform

Business Intelligence

Tags:

Material | Comunidad | SQL 2008 | SQL 2005 | Reporting Service | Videos

Herramientas para analizar buenas prácticas en SQL Server.

by 21. julio 2010 04:48

 

En toda empresa o proceso hablamos mucho de las buenas prácticas de trabajo.

Para SQL Server hay un número de buenas prácticas que nos permiten asegurar la calidad del código que escribimos sobre la base de datos como así también revisar otros aspectos administrativos (seguridad, backups, etc).

El tema es que analizar todas estas buenas prácticas por lo general es complejo, pero por suerte disponemos de algunas herramientas que nos da el mismo fabricante (En este caso Microsoft)

En los siguientes links les dejare las herramientas disponibles para cada versión de SQL Server.

Estas herramientas se las recomiendo de verdad ya que están muy buenas para analizar cómo estamos trabajando con nuestro SQL Server y así poder establecer que cambios hacer para lograr la mejor práctica

En futuros post y videos estaré mostrando como se utilizan cada una de ellas

 

SQL Server 2000 Best Practices Analyzer

SQL Server 2005 Best Practices Analyzer

Microsoft® SQL Server® 2008 R2 Best Practices Analyzer

Microsoft Baseline Security Analyzer

Tags:

Tunning | SQL 2008 | SQL 2005 | Administracion

Protocolos de SQL Server 2008

by 20. marzo 2010 16:03

Para aquellos que les interese conocer cada uno de los protocolos y esquemas en cada servicio de SQL Server 2008, Microsoft hace unos días publico estos excelentes documentos técnicos.

Se los recomiendo de verdad, muy buenos

Tags:

SQL 2008

Webcast : Integrando Reporting Service 2008 a Sharepoint

by 18. julio 2009 22:43

El día viernes 17 de julio di un webcast en el cual mostré las ventajas de la integración de reporting service con sharepoint, además se ve en el mismo la forma de configuración  , los cuidados que hay que tener y por ultimo un sitio funcionando.

Aquí les dejo el link para que puedan ver el video ondemand

Tags:

Comunidad | SQL 2008

Comprimiendo datos y backups en SQL Server 2008

by 18. julio 2009 20:54

El día jueves 16 de Julio he dado un webcast en el cual mostré las distintas opciones de compresión tanto a nivel datos como backups que hay en SQL Server 2008, una funcionalidad totalmente nueva.

Aquí les dejo el material del mismo para quienes lo deseen descargar

Tags:

Comunidad | SQL 2008

Material del Webcast sobre Resource Governor de SQL Server 2008

by 4. julio 2009 02:50

Hola, aquí les dejo el material que use en el webcast de Resource Governor.

Recuerden que pueden bajar el video desde el siguiente link

 

Material Resource Governor DemoRG

Tags:

SQL 2008

Novedades en SQL 2008 para desarrollo: Nuevos tipos de datos Fecha

by 11. junio 2009 03:45

Con este post estoy inaugurando una nueva sección en mi blog. La idea es ir mostrando con ejemplos prácticos las distintas novedades que tenemos en SQL Server 2008 para el desarrollador.

La mayoría de los post estarán orientados a la parte de programación.

Tratare de poner por lo menos un post distinto por semana.

En este primer post mostrare los nuevos tipos de datos relacionados con fechas y horas.

Estos nuevos tipos de datos están disponibles en todas las ediciones de SQL (Express, Workgroups, Web, Standard, Enterprise, Developer)

 

Introducción:

Hasta versiones anteriores a SQL 2008 disponíamos para guardar nuestras fechas y horas de dos tipos de datos Datetime y SmallDatetime.

En ambos tipos de datos se guardaba tanto la fecha como la hora.

El Datetime nos permite guardar fechas desde 1/1/1753 hasta el 31/12/9999, en cambio el SmallDatetime nos permite solo guardar los rangos que van desde 1/1/1900 hasta el 6/6/2079 y además tiene menos precisión que el anterior.

 

Uno de los grandes problemas de estos tipos de datos (podríamos decir mas que un problema una comodidad quizás) es que tanto la fecha como la hora se guardan ahí mismo, entonces si solo quiero guardar fechas debería siempre la hora ponerla en 00:00:00 y si solo quiero guardar horas la cosa se complica un poco mas y debería quizás tomar un valor estándar a nivel fecha , por ejemplo 1/1/1900.

Esto funciona lo mas bien pero es una incomodidad para la mayoría de los que desarrollamos.

Yo igual recomiendo siempre que se utilice el tipo de dato adecuado sin inventos, si hay que guardar fechas u horas usen datetime o smalldatetime en versiones anteriores a 2008.

También recuerden que la fechas no se guardan en ningún formato especial (dd/mm/yyyy o mm/dd/yyyyy) sino que se almacenan en bytes y luego el SQL las manipula según el idioma que tengamos definido en nuestro login, para lo cual es recomendable siempre manejarlas en formato ISO YYYYMMDD HH:mm:ss 

 

Nuevos tipos de datos en 2008

En la versión 2008 disponemos de nuevos tipos de datos para el manejo de fechas

Date:

Permite guardar solo la fecha con un rango que va desde el 0001-01-01 hasta el 9999-12-31

Aquí vemos un par de ejemplos

DECLARE @FECHA DATE

SET @FECHA = getdate()
SELECT @FECHA 

CREATE TABLE #DEMO1 (FECHA DATE)
go

INSERT INTO #DEMO1 VALUES ('20090610')
GO

Time:

Este tipo de datos solo almacena la hora en un rango que va desde las 00:00:00.0000000 hasta las 23:59:59.9999999

DECLARE @HORA TIME

SET @HORA = getdate()
SELECT @HORA 

CREATE TABLE #DEMO2 (HORA TIME)
go

INSERT INTO #DEMO2 VALUES ('12:30:00')
GO
 

Datetimeoffset

Este tipo de dato para mi es uno de los que yo mas esperaba y que realmente ayuda y mucho.

Hasta aquí hemos hablado de fechas y horas generales pero en ningún momento dijimos en que zona horaria esta una fecha, imaginemos que hacemos un sistema donde hay transacciones en distintas zonas geográficas, obviamente que una operación a las 10 AM –3 no es lo mismo que a las 10 AM –5.

Hasta versiones anteriores no teníamos forma de poder resolver este problema de forma simple, lo que yo hacia básicamente era tener una columna adicional smallint en la cual indicaba la zona horaria.

Bueno ahora por suerte en SQL 2008 disponemos de un tipo de datos que incluye la zona horaria, y ese tipo de datos es el Datetimeoffset.

Este tipo de dato guarda la fecha la hora y la zona horaria con un rango que va desde 0001-01-01 hasta  9999-12-31

Veamos un par de ejemplos

CREATE TABLE #DATOS (ID INT IDENTITY,
                     FECHA_HORA_UTC DATETIMEOFFSET
                    )  
GO

-- INSERTAMOS ALGUNOS REGISTROS


INSERT INTO #DATOS (FECHA_HORA_UTC)
VALUES ('2008-09-01T12:00:00-03:00'),
       ('2008-09-01T13:00:00-03:00'),
       ('2008-09-01T13:00:00-02:00'),
       ('2008-09-01T13:00:00+02:00'),
       ('2009-09-01T13:00:00+02:00')
       
GO

SELECT * FROM #DATOS

SELECT * FROM #DATOS 
ORDER BY FECHA_HORA_UTC  -- ORDENADO OFFSET

Podemos observar que el segundo query ordena las transacciones respetando la zona horaria donde por ejemplo la primer transacción es la numero 4 ya que su zona horaria es + 2 y tiene la misma fecha y hora que la operación 1,3 y 2

 

DateTime2

Este nuevo tipo de dato soporta fecha y hora pero se diferencia del Datetime clásico por el rango que va desde

0001-01-01 hasta 9999-12-31

 

Conclusiones Finales

 

Sql Server 2008 adiciona nuevos datos con respecto al manejo de fechas, ahora si tenemos el set completo smile_regular, como siempre recomiendo utilicen los tipos de datos adecuados, por ejemplo no usen un char o int para almacenar fechas u horas, en 2000 y 2005 usen Datetime y en 2008 tienen mas amplitud, la ventaja de usar los tipos de datos adecuados es también la posibilidad de usar funciones de forma simple, por ejemplo podríamos usar un Datepart cualquier tipo de datos fecha/hora.

 

Espero que este post los ayude.

Tags:

SQL 2008 | New Sql 2008

Como resolver querys jerárquicas en SQL 2005 o 2008

by 18. abril 2009 15:10

En muchas oportunidades tenemos la necesidad de resolver este tipo de querys, por ejemplo para una tabla de empleados, de menús , una estructura de productos, etc..... Armar este tipo de querys jerárquicas no suelen ser algo simple para la mayoría de los desarrolladores. En este ejemplo que les muestro en el post hare una query jerárquica en SQL 2005 o 2008 utilizando unas nuevas sentencias TSQL llamada CTE (Common Table Expresion).

-- CREAMOS UNA TABLA EMPLEADOS

IF OBJECT_ID('DBO.EMPLEADOS') IS NOT NULL
   DROP TABLE DBO.EMPLEADOS
GO

CREATE TABLE DBO.EMPLEADOS (ID INT NOT NULL,JEFE_ID INT NULL,
                            NOMBRE VARCHAR(300),Puesto varchar(300))
GO

INSERT INTO DBO.EMPLEADOS VALUES (100,NULL,'Martin','CEO')
INSERT INTO DBO.EMPLEADOS VALUES (101,100,'Maxi','Gerente Sistemas')
INSERT INTO DBO.EMPLEADOS VALUES (102,100,'Veronica','Gerente Calidad')
INSERT INTO DBO.EMPLEADOS VALUES (103,101,'Javier','Analista SR')
INSERT INTO DBO.EMPLEADOS VALUES (104,101,'Gabriel','DBA')
INSERT INTO DBO.EMPLEADOS VALUES (105,102,'Ana','Auditora')
INSERT INTO DBO.EMPLEADOS VALUES (106,103,'Luis','Programador')
INSERT INTO DBO.EMPLEADOS VALUES (107,105,'Jose','Asistente')
GO

-- MOSTRAMOS EL ORGANIGRAMA HASTA EL NIVEL 2

WITH REPORTE(JEFE_ID, ID,NOMBRE,PUESTO,NIVEL) AS 
(
    SELECT JEFE_ID, ID,NOMBRE,PUESTO, 0 AS NIVEL
    FROM DBO.EMPLEADOS
    WHERE JEFE_ID IS NULL -- TRAEMOS TODOS LOS QUE NO TIENEN JEFES 
    UNION ALL
    SELECT e.JEFE_ID, e.ID, E.NOMBRE,E.PUESTO,NIVEL + 1
    FROM DBO.EMPLEADOS e
        INNER JOIN REPORTE d
        ON e.JEFE_ID = d.ID 
)
SELECT REPORTE.JEFE_ID, REPORTE.ID, REPORTE.NOMBRE,REPORTE.PUESTO,
EMPLEADOS.NOMBRE AS JEFE_NOMBRE, EMPLEADOS.PUESTO AS PUESTO_JEFE 
FROM REPORTE LEFT JOIN DBO.EMPLEADOS ON
REPORTE.JEFE_ID = EMPLEADOS.ID
WHERE NIVEL <= 2 
GO

 

En SQL Server 2008 disponemos además de esto la posibilidad de utilizar un tipo de dato jerárquico llamado Hierarchyid

Tags:

TSQL | How To | SQL 2005 | SQL 2008

Maximiliano Damian Accotto