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

Sql Server 2008 R2 CTP ya disponible

by 12. agosto 2009 00:30

Como bien indica el titulo de este post, ya hace unos días que tenemos disponible el CTP de la nueva versión de SQL 2008 llamada R2 o Kilimanjaro.

Aquí el link

Tags:

New Sql 2008

Webcast de Resource Governor SQL 2008

by 1. julio 2009 06:13

En Julio inicio una serie de Webcast (Eventos online y gratuitos) para Microsoft.

En el primero de esta serie (unos 5 serán) estaré mostrando Resource Governor, una nueva funcionalidad que viene con SQL Server 2008 y nos permite controlar el uso de los recursos (por ejemplo podríamos indicar a una aplicación dentro de SQL cuanto le damos de CPU o memoria)

En esta demo veremos no solo los conceptos teóricos sino que también nos concentraremos en la configuración y el funcionamiento, veremos una demo en vivo de como funciona este nuevo recurso en un ambiente real.

Este evento esta orientado a DBA

Tags:

New Sql 2008

Ejemplos y guía de Reporting Service 2008

by 26. junio 2009 02:06

Aquí les dejo un archivo comprimido con todo el material que yo utilizo y arme para las distintas conferencias que doy de Reporting Service 2008.

En el mismo encontraran un pdf donde se muestran desde los conceptos iniciales hasta los mas avanzando (teoría) y también ejemplos en los cuales hay (Tablas, matrices, Tablix, Indicadores Gauge, Consultas de saldos, uso de parámetros, imágenes, reportes que se vinculan entre si, etc.)

Para poder usar los ejemplos deberán restaurar la base de datos que viene en el RAR que no es ni mas ni menos que Adventureworks.

Estos ejemplos no fueron probados en Sql Express.

Tags:

New Sql 2008 | Reporting Service

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

Maximiliano Damian Accotto