2. MS SQL Server 2012 SP1
para desarrolladores
José Redondo
RM PASS Latam | Chapter Leader SQL PASS Venezuela | DPA SolidQ | SQL Server MVP
Correo: redondoj@gmail.com | Twitter: @redondoj | Blog: redondoj.wordpress.com
3. AGENDA
• Business Intelligence Development Studio | SQL Server Data
Tools
• SQL Server Express LocalDB
• Mejoras en T-SQL
• Índice de Almacenamiento Columnar (ColumnStore Index)
• Novedades en Extented Events
• Certificaciones en MS SQL Server 2012
5. Business Intelligence Development Studio |
SQL Server Data Tools
• Anteriormente conocido como SQL Server Developer Tools,
Código "Juneau".
• SQL Server Data Tools "SSDT" es una evolución del Visual Studio
for Database Professionals ("Data Dude").
• Herramienta de desarrollo para SQL Server y SQL Azure
Database Developer.
• Puede ser independientemente instalado (Standalone) o se
puede integrar en una instalación existente de Visual Studio
2010 y superior (Edición Profesional en adelante).
6. Business Intelligence Development Studio |
SQL Server Data Tools
Características
• Targets SQL Server 2005, SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 y SQL
Azure
• Migrar esquemas de ON-Premise SQL Server en la nube en SQL Azure
• Desarrollo SQL CLR
• Modelo de desarrollo desconectado enriquecido (Basado en proyecto)
• Análisis de código
• Seguimiento de dependencias de objetos
• Refactoring
• IntelliSense
• Modelo conectado
• Modelo Data-Tier Application (DAC Fx)
• Generación de script es posible
7. Business Intelligence Development Studio |
SQL Server Data Tools
PLATAFORMA DIRIGIDA A
• Proyecto unitario puede tener como objetivo múltiples plataformas
• Versiones del servidor SQL
• SQL Azure
• Desarrollar proyecto que proporcionen Control de Errores y Adventicias
(Warning)
• Especificar escenarios de acción
• No es necesario crear y ejecutar secuencias de comandos para encontrar issues
9. Business Intelligence Development Studio |
SQL Server Data Tools
Soporte nativo SQL CLR en SQL Server Data Tools
• SSDT soporta agregando objetos CLR de SQL para proyectos de
base de datos
•
•
•
•
•
No necesita crear proyectos separado de SQL CLR
C# y VB
Depuración sin problemas y despliegue sencillo
Ventana de propiedades del SQL CLR en los proyectos de base de datos
Proyectos separados son soportados todavía
12. SQL Server Express LocalDB
Edición de SQL Server dirigido a los desarrolladores
• Modo usuario, en ejecución de procesos
• Instalación en la configuración nula
• Motor de base de datos para embeber en aplicaciones trasparentemente
• Mínimos pre-requisitos
• Son mínimos los archivos copiados durante la implementación
• Diseñado para su uso en múltiples entornos
13. SQL Server Express LocalDB
Edición de SQL Server dirigido a los desarrolladores
• Utilizada como una plataforma de prueba para desarrolladores
• Base de datos de embebida para aplicaciones de producción
• Utilidad para la gestión SQLLocalDB.exe
• Remplaza el uso de instancias de usuario soportada en SQL Express
• Instancia de usuario de SQL Express en desuso desde SQL Server 2008
• Suporte de AttachDBFileName en la cadena de conexión
• Especifica la ubicación y direccionamiento de los archivos de base de
datos
14. SQL Server Express LocalDB
• Similar a trabajar con otras ediciones
• El mismo ejecutable SQLServr.exe
• El mismo proveedor client-side
• El mismo T-SQL
• Instalada una por versión y por máquina
• Las aplicaciones se ejecutan desde sus propias copias de ejecución
• No hay servicios SQL instalados
• Procesos de iniciado/detenido se establecen automáticamente según sea
necesario
• Las aplicaciones se conectan a través de "Data Source=(localdb)/v11.0"
• LocalDB es ejecutado como un proceso secundario de la aplicación
• El proceso de LocalDB se apaga unos minutos después de la última conexión
15. SQL Server Express LocalDB
Características
SQL Server
Compact 3.5
SP2
SQL Server
Compact 4.0
SQL Server
SQL Server
Express 2012 2012 LocalDB
Despliegue / Características de instalación
Tamaño de la instalación
Desplegando en solo Click
Instalación en segundo plano,
embebida con la aplicación a
instalar
Soporte para 64-bit
Se ejecuta como un servicio
2.5 MB tamaño
descarga 12 MB
expandido en
disco
Si
2.5 MB tamaño
descarga 18 MB
expandido en
disco
Si
120 MB tamaño 32 MB tamaño
descarga > 300 descarga > 160
MB expandido en MB en disco
disco
Si
Si
Si
Si
No
No
Si
Si
Si
Si
No - Es
ejecutado como
un proceso
No - En proceso No - En proceso
Si
con la app
con la app
16. SQL Server Express LocalDB
SQL Server
Compact 3.5
SP2
Características
Características de los archivos de datos
Formato de archivo
Almacenamiento de archivos de datos
en una red compartida
Soporte para diferentes extensiones de
archivos
Soporte para el tamaño de bases de
datos
SQL Server
Compact 4.0
SQL Server
Express 2012
SQL Server
2012 LocalDB
Un archivo
Un archivo
Multiples archivos
Multiples archivos
No
No
No
No
Si
Si
No
No
4GB
4GB
10GB
10GB
Almacenamiento XML
Si - Almacenamiento Si - Almacenamiento
Si
como Ntext
como Ntext
Si
Almacenamiento Binario (BLOB )
Si - Almacenamiento Si - Almacenamiento
Si
como Image
como Image
Si
Soporte para FILESTREAM
No
No
No
Si
17. SQL Server Express LocalDB
SQL Server
Compact 3.5
SP2
Características
SQL Server
Compact 4.0
SQL Server
Express 2012
SQL Server
2012 LocalDB
Programabilidad
T-SQL Procedual - Select Case - If Características
No
No
Si
Si
Transacciones simples
Si
Si
Si
Si
Transacciones distribuidas
No
No
Si
Si
XML nativo, Xquery/Xpath
No
No
Si
Si
Procedimientos Almacenados, Vistas,
Desencadenadores
No
No
Si
Si
Seguridad basada en roles
No
No
Si
Si
Número de conexiones concurrentes
256 (100)
256
Ilimitadas
Ilimitadas (Pero
solamente local)
20. Mejoras en T-SQL
•
•
•
•
•
•
•
•
•
•
Paginación en Consultas | Datos
Clausula OVER sobre Lotes de Datos
Secuencias de Objetos
Administrar Metadata
Administrar Errores
Mejoras en la Librería de Funciones Lógicas y de Cadenas
Conversión de Funciones
Funciones de Fechas y Tiempo
Service Broker mejorado
Funciones Analíticas LEAD() y LAG()
21. Mejoras en T-SQL
Paginación en Consultas | Datos
• Una de las características más usadas en las aplicaciones
• Mas de una aplicación implementan paginación a nivel de aplicaciones (No a
nivel de Base de Datos)
• Actualmente nivel de paginación para Bases de Datos
• Retorna datos utilizando el comando Función ROW_NUMBER()
• Tablas Temporales
• Otras opciones…
• SQL Server 2012 simplifica el trabajo de paginación con:
• Necesidad de establecer el comandos de desplazamiento de datos
• El número de registros que requiere para ser desplazado es usado por el comando
FETCH
25. Mejoras en T-SQL
Secuencias de Objetos
• Un usuario define un objeto que retorna una secuencia numérica de
valores
• Objeto similar se encuentra en Oracle
• Es uno en la base de datos, no solamente en la tabla (Atención: No es
una columna IDENTITY)
• Puede ser usado en cualquier lugar de la base de datos, sin necesidad
de especificar una tabla
• Punto negativo: No admite transacción
27. Mejoras en T-SQL
Administrar Metadata
• Antes lo hacíamos con la sentencia "SET FMTONLY ON", que se utiliza para devolver
los metadatos sólo (No los datos reales)
• Es muy útil en escenarios donde no podemos predecir el conjunto de resultados.
• Breaking News:
• Dos nuevos Procedimientos Almacenados del sistema y su equivalente DMV es introducido en
2012
• Procedimientos almacenados
• sp_describe_first_result_set
• sp_describe_undeclared_parameters
• Funciones del sistema
• Sys.dm_exec_describe_first_result_set
• Sys.dm_exec_describe_first_result_set_for_object
29. Mejoras en T-SQL
Administrar Errores
• SQL Server 2005 introdujo la sentencia TRY/CATCH (Pero aún le falta
mucho por hacerse a un nombre. Esa ayuda llego con THROW)
• El error emitido por el sistema a través de esta sentencia se enviaba al
cliente PERO era necesario utilizar el comando RAISEERROR para
utilizar el resultado
• THROW se añade al lenguaje T-SQL en 2012 (Es similar como en Visual
C#.NET o Visual Basic.NET)
• Ahora, no es necesario generar una entrada en la tabla SYS.MESSAGES
• La excepción original es enviada al cliente directamente
30. Mejoras en T-SQL
Mejoras en la Librería de Funciones Lógicas y de Cadenas
• IIF
• Toma una expresión booleana y devuelve uno de los dos valores dados
• Abreviatura de la expresión CASE
• Puede ser anidado hasta 10 niveles
• CHOOSE
• Devuelve un valor de la lista basándose en el índice proporcionado
• Si no se encuentra a continuación, devuelve NULL
• Tipo de datos se devuelve basado en la prioridad
• FORMAT
•
Función FORMAT para establecer el formato de Fecha/Hora y valores numéricos como cadenas de caracteres
• CONCAT
•
Concatena dos o más cadenas
31. Mejoras en T-SQL
Conversión de Funciones
• PARSE
• Analizar una cadena y trata de convertirla en un tipo de datos proporcionado
• Utiliza el CLR de .NET
• Genera un error si no es capaz de convertirlo
• TRY_PARSE
• Similar a PARSE pero devuelve NULL si no se puede analizar
• También utiliza el CLR de .NET
• TRY_CONVERT
• Similar a CONVERT pero devuelve NULL si no se puede analizar
33. Mejoras en T-SQL
Service Broker mejorado
•
•
•
•
Nuevos Bells y Whistles
Mensajes Multicast
Nueva Columna en los resultados del servicio: message_enqueue_time
La vista del sistema: sys.service_queues
34. Mejoras en T-SQL
Funciones Analíticas LAG() y LEAD()
• LAG() – Acceso a los datos de la fila anterior del mismo resultado sin unirse a uno
•
•
•
•
•
Parameters
Scalar_Expression
Offset
Default
Over([partition_by_clause] order_by_clause)
• LEAD() - Acceso a los datos en la fila posterior desde el mismo resultado
•
•
•
•
Scalar_Expression
Offset
Default
Over([partition_by_clause] order_by_clause)
37. Índice de Almacenamiento Columnar
(ColumnStore Index)
• Páginas de columnas de almacenamiento de datos y Columnas son fuertemente
comprimidas
Column 1 Column 1
Column 4 Column 4
Page 1
Page 2
• Elimina redundancia y provee búsquedas más rápida
Limitaciones
• 1 tabla puede tener solamente un solo índice de ColumnStore
• Después de crear el ColumnStore no se puede actualizar la tabla de índice (En 2014
permitirá actualizar el índice)
38. Índice de Almacenamiento Columnar
(ColumnStore Index)
Almacenamiento de registro
• Los datos relacionales se almacenan a modo de fila que aún se
almacena en la página con el tamaño de página de 8 KB en HardDisk
como
Column 1 Column 2 Column 3 Column 4 Column 5
Column 1 Column 2 Column 3 Column 4 Column 5
Pagina 1
Almacén de fila
Pagina 2
Column 1
Valida varias filas para ir a buscar los datos
41. Novedades en Extented Events
• Un sistema de Event-Handling para sistemas de servidores
• Estos permiten definir eventos para ser monitoreados,
proveyendo una variedad de vías para consumirlos
• Estas pueden ser sincrónicas y asincrónicas
• Pueden ser accionados desde desencadenadores cuando un
evento se genera
• Utiliza predicados para filtrar eventos desde el cliente
• Es escalable y de alto desempeño
• El costo de ejecución para un sencillo evento es
extremadamente pequeño
42. Novedades en Extented Events
Que hay de nuevo
• SSMS provee soporte nativo para los Extented Events bajo el folder
Management en el Explorador de Objetos
• NumberOfEventsMonitored += cientos (Comparado con 2008 Y 2008
r2)
• Soporte para Management API for .NET Extended Events
48. Certificaciones en MS SQL Server 2012
• MCSA - Microsoft Certified Solutions Associate
• MCSE - Microsoft Certified Solutions Expert
• MCSD - Microsoft Certified Solutions Developer
• MTA - Microsoft Technology Associate
• MCSM – Microsoft Certified Solutions Master