Novedades SQL Server 2012 para desarrolladores

Enrique Catala Bañuls
Enrique Catala BañulsTechnical Leader at @SolidQ and Microsoft Data Platform MVP
SQL Server 2012: Novedades SQL
Server para desarrolladores
Enrique Catalá Bañuls
Mentor – Área relacional - SolidQ
MCT – MS Technical Ranger – MCTS – MCITP – MAP 2010
ecatala@solidq.com
αIngeniero Informático
αMentor en SolidQ
αMicrosoft Technical Ranger
αColaborador destacado en MSDN Spain
αMicrosoft Active Professional 2010
αMicrosoft Certified Trainer
αMicrosoft Certified IT Professional
β Database Developer 2008
β Database Administrator 2008
αArquitecto de entre otros
Health Check, SQL2Cloud y SCODA
Enrique Catalá
Objetivos de la sesión
• Especificación robusta de metadatos
• Mejoras de TRY-CATCH
• Nuevas funciones escalares
• Mejoras en formateo de datos
• Paginación
• Secuencias
• Mejoras
– FTS
– Spatial
• CLÁUSULA OVER
– Windowing
– Análisis
Especificacion robusta de metadatos
• Podemos definir “contratos” de conjuntos de
resultado
– Número de resultsets devueltos
– Tipos de datos y columnas
• Nueva cláusula WITH RESULT SETS permitida:
– T-SQL Dinámico
– Cláusulas OPENROWSET
– Procedimientos almacenados
TRY-CATCH y…THROW
• Por fin disponemos de operación THROW
• Si un THROW no lleva catch asociado, la sesión
finaliza
• Se permite relanzar hacia arriba en CATCH o
ejecución aislada
THROW [ { error_number | @local_variable }, {
message | @local_variable }, { state |
@local_variable } ] [ ; ]
Nuevas funciones
• EOMONTH(date [, months_to_add])
• DATEFROMPARTS(year, month, day)
• TIMEFROMPARTS(hour, minutes, seconds, fractions, scale)
• DATETIME2FROMPARTS(year, month, day, hour, minutes, seconds,
fractions, scale)
• DATETIMEFROMPARTS(year, month, day,hour, minutes, seconds,
milliseconds)
• SMALLDATETIMEFROMPARTS(year, month, day,hour, minutes)
• TRY_CONVERT( data_type [(lenght)], expression [, style])
• FORMAT( value, format [, culture] )
• PARSE( string_value as data_type [USING culture] )
• TRY_CONVERT( string_value as data_type [,USING culture])
• IIF( boolean expr, true_value, false_value)
• CHOOSE( index, val1, val2 [, valN])
• CONCAT(val1, val2…[, valN])
Mejoras en formateo de datos
• FORMAT()
– Formatea un valor con máxima flexibilidad
– Se pueden generar valores inválidos
• PARSE()
– Transforma el valor de entrada al tipo especificado
– Puede generar excepcion
• TRY_PARSE()
– Intenta convertir y si puede lo hace
– No genera excepciones
PAGINACION
• “ASYNC_NETWORK_IO”: “Occurs on network
writes when the task is blocked behind the
network. Verify that the client is processing data
from the server.”
• “PAGEIOLATCH_SH: “Occurs when a task is
waiting on a latch for a buffer that is in an I/O
request. The latch request is in Shared mode. Long
waits may indicate problems with the disk
subsystem.”
PAGINACION: Antes…
• Con SQL Server 2005 aparecieron las funciones de
Ranking
– Pudimos empezar a dar solución al problema de la
paginación, con algo de imaginación, eso si
Paginación: Ahora…
• Sintaxis ANSI que puede servir a fines idénticos a TOP(n)
• Muchísima mas potente
• Filtro aplicado sobre la cláusula ORDER BY
• OFFSET indica cuantas filas hay que saltarse
• FETCH indica cuantas filas se deben devolver tras el OFFSET
• *Por ahora, mismo plan de ejecución
Cláusula OFFSET/FETCH
• Clara y concisa
Secuencias
• Una secuencia es un objeto usado para autogenerar números
basados en criterios flexibles
• Es la evolución de IDENTITY
• Muy flexible y con posibilidad de optimizar su rendimiento
• Solo se soporta nombre de dos partes
• La equivalencia lógica con IDENTITY
Secuencias: ¿Por qué?
• Sirven para crear valores de clave en inserciones
– Permiten incluso almacenar dicho valor en variable
• NEXT VALUE FOR
– Función para obtener el siguiente valor de la secuencia
• Sp_sequence_get_range
– Obtiene un rango de valores de secuencia que mas
tarde podremos utilizar
Secuencias vs Identity
Option Identity Sequences
Obtain value before use No Yes
Table-Independent No Yes
Use in UPDATE No Yes
Used in SELECT No Yes
Control order Not in SELECT INTO
Yes in INSERT SELECT
Yes
Effected by rollback No No
Can associate/disassociate with an existing
column
No Yes
Can define minimum and maximum values No Yes
Can cycle No Yes
Can change increment No Yes
Supports defining caching No Yes
Obtain range of values No Yes
Secuencias: Rendimiento
• Se utiliza por defecto
caché de 50 elementos
– Identity utiliza cacheo
de 10
• Se puede modificar el
cacheo e incluso
deshabilitar
• Cuanto más caching,
mas rendimiento
– No linear
• Posibilidad de huecos
ante caidas
Secuencias: Rendimiento
• Se puede obtener un aumento muy alto utilizando
sp_sequence_get_range
Full Text Search: Mejoras
• Se puede utilizar IFilters como propiedades extendidas para
hacer búsquedas en FTS
• Ahora por tanto, se puede buscar en las propiedades que
exponen de forma óptima
α Esto unido al
FILETABLE
storage…no os da la
impresión de que
WinFS está dando
tufillo? :)
create fulltext index on
db_X.svceventinfo(file_stream)
Full Text Search: Motor
• Mejoras del motor entre 7-10x frente a SQL 2008
(Según internals de MS)
– Comparado con SQL 2005 más de 60x
• En el peor de los casos, tiempos de respuesta iFTS
de <3ms
• Hasta 350M de documentos por almacenamiento
• Incremento de respuesta linear con el nº de CPU
Spatial: Mejoras indexación
• Ahora hasta 8 Niveles por defecto
– Antes 4
– Hasta 256 niveles (antes 32)
• GEOGRAPHY_AUTO_GRID y GEOMETRI_AUTO_GRID
• Soporte para objetos curvilíneos
– CircularString
– CompoundCurve
– CurvePolygon
• Nuevos métodos adaptados
– STCurveToLine()
– BufferWithCurves()
– …
• Mayor Precisión
Spatial: Novedades
• Para mayor precisión, cláusula
SPATIAL_WINDOW_MAX_CELL con posibilidad de llegar a
2048 celdas
• La mayoría de operadores y métodos se han optimizado
• Ya es posible realizar agregaciones
– UnionAggregate
– EnvelopeAggregate
– CollectionAggregate
– ConvexHullAggregate
• Ya es posible superar el valor de hemisferio lógico
SELECT GEOGRAPHY::UnionAggregate(geog) FROM Regions
Objetivos de la sesión
• Especificación robusta de metadatos
• Mejoras de TRY-CATCH
• Nuevas funciones escalares
• Mejoras en formateo de datos
• Paginación
• Secuencias
• Mejoras
– FTS
– Spatial
• CLÁUSULA OVER
– Windowing
– Análisis
Cálculos sobre conjuntos
• Cálculos aplicados a conjuntos de filas
• Resolución de problemas
– Cursores
– Consultas agrupadas
– Subconsultas
– Joins
• Retos
– Pensar en modo conjunto
– Mezclar cálculos de agrupado y el nivel detalle
– Complejidad
– Rendimiento
Piensa en conjuntos
• No te desvíes de la realidad, SQL Server es un
motor relacional basado en conjuntos
• ¿Entiendes realmente lo que significa conjunto?
Definición teórica por Georg Cantor:
1. Un conjunto es una reunión de objetos que cumplen con cierta propiedad
(llamados los elementos de ese conjunto) y que, por tanto, queda definido por
tal propiedad.
2. Un conjunto es una sola entidad matemática, de modo que puede a su vez ser
contenido por otro conjunto
3. Dos conjuntos que tengan los mismos elementos son iguales, luego un
conjunto queda determinado por sus elementos
En definitiva, una reunión de objetos sin ningún orden y con una propiedad común
Mezcla de detalle y cálculos de
conjuntos
• Las consultas agrupadas imponen condiciones
Piensa en conjuntos
• Subconsultas
– Demasiada
información
– Cuidado con el
orden de
evaluación
– Cada consulta
necesita su
resolución
independiente
Piensa en conjuntos
• El pensamiento tradicional produce consultas muy
complejas
Piensa en conjuntos
• Consultas de complejidad cuadrática
Mejoras cláusula OVER
• Hasta SQL Server 2008 R2
• En SQL Server 2012
• Particionamos
• Ordenamos
• Deslizamos
Nuevas construcciones basadas en
conjuntos
• Conceptualmente, una ventana deslizante existe
simultáneamente respecto a cada fila. Debes preparar tu
mente para empezar a dar soluciones eficaces
Cambia tu forma de pensar
α Pensar en una asignación numérica aislada e independiente es
erróneo aunque se obtenga el resultado deseado 
Nuevas funciones de agregado
• En SQL 2012 aparecen nuevas funciones analíticas
• De offset
– LAG
– LEAD
– FIRST_VALUE
– LAST_VALUE
• Distribución
– PERCENT_RANK
– PERCENTILE_CONT
– PERCENTILE_DIST
– CUME_DIST
Abre tu mente 
Resumen de la sesión
• Especificación robusta de metadatos
• Mejoras de TRY-CATCH
• Nuevas funciones escalares
• Mejoras en formateo de datos
• Paginación
• Secuencias
• Mejoras
– FTS
– Spatial
• CLAUSULA OVER
– Windowing
– Funciones de análisis
Novedades SQL Server 2012 para desarrolladores
Enrique Catalá Bañuls
Mentor – Área relacional
MCT – MS Technical Ranger – MCTS – MCITP – MAP 2010
ecatala@solidq.com
1 of 35

Recommended

SQL Server 2014 Mejoras del DB Engine by
SQL Server 2014 Mejoras del DB EngineSQL Server 2014 Mejoras del DB Engine
SQL Server 2014 Mejoras del DB EngineEduardo Castro
2.1K views64 slides
SQL Server 2014 Nuevas Capacidades by
SQL Server 2014  Nuevas CapacidadesSQL Server 2014  Nuevas Capacidades
SQL Server 2014 Nuevas CapacidadesEduardo Castro
8K views33 slides
Novedades de SQL Server 2014 en motor relacional by
Novedades de SQL Server 2014 en motor relacionalNovedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalEnrique Catala Bañuls
1.2K views36 slides
Comparación entre microsoft sql server express edition 2012 y oracle by
Comparación entre microsoft sql server express edition 2012 y oracleComparación entre microsoft sql server express edition 2012 y oracle
Comparación entre microsoft sql server express edition 2012 y oracleOsmar Zaragoza
5.3K views18 slides
SQL Server 2014 infraestructura hibrida y nube by
SQL Server 2014 infraestructura hibrida y nubeSQL Server 2014 infraestructura hibrida y nube
SQL Server 2014 infraestructura hibrida y nubeEduardo Castro
1.2K views112 slides
Data Amp 2017 - Whats New in SQL Server 2017 by
Data Amp 2017 - Whats New in SQL Server 2017Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017dbLearner
138 views14 slides

More Related Content

What's hot

10 Tips ‘n’ Tricks for DBAs by
10 Tips ‘n’ Tricks for DBAs10 Tips ‘n’ Tricks for DBAs
10 Tips ‘n’ Tricks for DBAsdbLearner
451 views16 slides
MS SQL Server 2014 - In-Memory OLTP by
MS SQL Server 2014 - In-Memory OLTPMS SQL Server 2014 - In-Memory OLTP
MS SQL Server 2014 - In-Memory OLTPJoseph Lopez
1.8K views48 slides
SQL Server 2014 y La Plataforma de Datos by
SQL Server 2014 y La Plataforma de DatosSQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de DatosJoseph Lopez
1.6K views42 slides
Recuperación ante desastres y continuidad del negocio con Azure SQL Database by
Recuperación ante desastres y continuidad del negocio con Azure SQL DatabaseRecuperación ante desastres y continuidad del negocio con Azure SQL Database
Recuperación ante desastres y continuidad del negocio con Azure SQL DatabaseJoseph Lopez
1.1K views37 slides
SQL Server 2016 Tablas en Memoria by
SQL Server 2016 Tablas en MemoriaSQL Server 2016 Tablas en Memoria
SQL Server 2016 Tablas en MemoriaEduardo Castro
1.5K views37 slides
Consideraciones de sql server hardware by
Consideraciones de sql server hardwareConsideraciones de sql server hardware
Consideraciones de sql server hardwareEduardo Castro
269 views40 slides

What's hot(20)

10 Tips ‘n’ Tricks for DBAs by dbLearner
10 Tips ‘n’ Tricks for DBAs10 Tips ‘n’ Tricks for DBAs
10 Tips ‘n’ Tricks for DBAs
dbLearner451 views
MS SQL Server 2014 - In-Memory OLTP by Joseph Lopez
MS SQL Server 2014 - In-Memory OLTPMS SQL Server 2014 - In-Memory OLTP
MS SQL Server 2014 - In-Memory OLTP
Joseph Lopez1.8K views
SQL Server 2014 y La Plataforma de Datos by Joseph Lopez
SQL Server 2014 y La Plataforma de DatosSQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de Datos
Joseph Lopez1.6K views
Recuperación ante desastres y continuidad del negocio con Azure SQL Database by Joseph Lopez
Recuperación ante desastres y continuidad del negocio con Azure SQL DatabaseRecuperación ante desastres y continuidad del negocio con Azure SQL Database
Recuperación ante desastres y continuidad del negocio con Azure SQL Database
Joseph Lopez1.1K views
SQL Server 2016 Tablas en Memoria by Eduardo Castro
SQL Server 2016 Tablas en MemoriaSQL Server 2016 Tablas en Memoria
SQL Server 2016 Tablas en Memoria
Eduardo Castro1.5K views
Consideraciones de sql server hardware by Eduardo Castro
Consideraciones de sql server hardwareConsideraciones de sql server hardware
Consideraciones de sql server hardware
Eduardo Castro269 views
Conociendo los cambios de SQL Server a partir de 2012 a 2016 by Joseph Lopez
Conociendo los cambios de SQL Server a partir de 2012 a 2016Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016
Joseph Lopez2.8K views
Novedades SQL Azure v12 by SolidQ
Novedades SQL Azure v12Novedades SQL Azure v12
Novedades SQL Azure v12
SolidQ129 views
Consideraciones de memoria sql server hardware by Eduardo Castro
Consideraciones de memoria sql server hardwareConsideraciones de memoria sql server hardware
Consideraciones de memoria sql server hardware
Eduardo Castro296 views
Introduccion a SQL Server 2016 Stretch Databases by Eduardo Castro
Introduccion a SQL Server 2016 Stretch DatabasesIntroduccion a SQL Server 2016 Stretch Databases
Introduccion a SQL Server 2016 Stretch Databases
Eduardo Castro324 views
Introducción al SQL Server 2016 Query Store by Eduardo Castro
Introducción al SQL Server 2016 Query StoreIntroducción al SQL Server 2016 Query Store
Introducción al SQL Server 2016 Query Store
Eduardo Castro913 views
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016... by Joseph Lopez
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
Joseph Lopez654 views
Azure sql database escalabilidad by Eduardo Castro
Azure sql database escalabilidadAzure sql database escalabilidad
Azure sql database escalabilidad
Eduardo Castro514 views
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos by Joseph Lopez
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datosMS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
Joseph Lopez2K views
Mejores prácticas para SQL Server en ambientes virtualizados by SpanishPASSVC
Mejores prácticas para SQL Server en ambientes virtualizadosMejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizados
SpanishPASSVC3.3K views
Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG) by SolidQ
 Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG) Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)
Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)
SolidQ307 views
SQL 2016 Mejoras en InMemory OLTP y Column Store Index by Eduardo Castro
SQL 2016 Mejoras en InMemory OLTP y Column Store IndexSQL 2016 Mejoras en InMemory OLTP y Column Store Index
SQL 2016 Mejoras en InMemory OLTP y Column Store Index
Eduardo Castro998 views
Vistazo a lo nuevo en SQL Server 2016 by Eduardo Castro
Vistazo a lo nuevo en SQL Server 2016Vistazo a lo nuevo en SQL Server 2016
Vistazo a lo nuevo en SQL Server 2016
Eduardo Castro600 views

Viewers also liked

Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014 by
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Enrique Puig
1.5K views25 slides
Experiencias de migraciones a sql server 2012-2014 by
Experiencias de migraciones a sql server 2012-2014 Experiencias de migraciones a sql server 2012-2014
Experiencias de migraciones a sql server 2012-2014 Enrique Catala Bañuls
1.7K views30 slides
SQL Server Reporting Services Disaster Recovery Webinar by
SQL Server Reporting Services Disaster Recovery WebinarSQL Server Reporting Services Disaster Recovery Webinar
SQL Server Reporting Services Disaster Recovery WebinarDenny Lee
5.1K views26 slides
Window functions with SQL Server 2016 by
Window functions with SQL Server 2016Window functions with SQL Server 2016
Window functions with SQL Server 2016Mark Tabladillo
3.6K views24 slides
SENTENCIAS DE SQL SERVER by
SENTENCIAS DE SQL SERVERSENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVERDeysiDelgadoSeclen
4.3K views8 slides
Business Intelligence con Sql Server 2014 by
Business Intelligence con Sql Server 2014Business Intelligence con Sql Server 2014
Business Intelligence con Sql Server 2014Eduardo Castro
3.5K views71 slides

Viewers also liked(20)

Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014 by Enrique Puig
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Enrique Puig1.5K views
SQL Server Reporting Services Disaster Recovery Webinar by Denny Lee
SQL Server Reporting Services Disaster Recovery WebinarSQL Server Reporting Services Disaster Recovery Webinar
SQL Server Reporting Services Disaster Recovery Webinar
Denny Lee5.1K views
Window functions with SQL Server 2016 by Mark Tabladillo
Window functions with SQL Server 2016Window functions with SQL Server 2016
Window functions with SQL Server 2016
Mark Tabladillo3.6K views
Business Intelligence con Sql Server 2014 by Eduardo Castro
Business Intelligence con Sql Server 2014Business Intelligence con Sql Server 2014
Business Intelligence con Sql Server 2014
Eduardo Castro3.5K views
Indices columnares | SolidQ Summit 2012 by SolidQ
Indices columnares | SolidQ Summit 2012Indices columnares | SolidQ Summit 2012
Indices columnares | SolidQ Summit 2012
SolidQ473 views
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala by SpanishPASSVC
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala
SpanishPASSVC553 views
Creacion de indices y constraints en sql server by ZeleneMorita
Creacion de indices y constraints en sql serverCreacion de indices y constraints en sql server
Creacion de indices y constraints en sql server
ZeleneMorita492 views
SQL Saturday 254 10- Cosas que no se deben de hacer en una BD by Adrian Miranda
SQL Saturday 254   10- Cosas que no se deben de hacer en una BDSQL Saturday 254   10- Cosas que no se deben de hacer en una BD
SQL Saturday 254 10- Cosas que no se deben de hacer en una BD
Adrian Miranda910 views
Novedades en seguridad en SQL Server 2012 v1 | SolidQ Summit 2012 by SolidQ
Novedades en seguridad en SQL Server 2012 v1 | SolidQ Summit 2012Novedades en seguridad en SQL Server 2012 v1 | SolidQ Summit 2012
Novedades en seguridad en SQL Server 2012 v1 | SolidQ Summit 2012
SolidQ1.3K views
Escribiendo código T-SQL eficientemente by Joseph Lopez
Escribiendo código T-SQL eficientementeEscribiendo código T-SQL eficientemente
Escribiendo código T-SQL eficientemente
Joseph Lopez913 views
Diplomado Técnico SQL Server 2012 - Sesión 6/8 by John Bulla
Diplomado Técnico SQL Server 2012 - Sesión 6/8Diplomado Técnico SQL Server 2012 - Sesión 6/8
Diplomado Técnico SQL Server 2012 - Sesión 6/8
John Bulla858 views
Toolbox SQL Server para optimización by SolidQ
Toolbox SQL Server para optimizaciónToolbox SQL Server para optimización
Toolbox SQL Server para optimización
SolidQ352 views
Creación de aplicaciones de bases de datos con MS SQL Server 2012 by Joseph Lopez
Creación de aplicaciones de bases de datos con MS SQL Server 2012Creación de aplicaciones de bases de datos con MS SQL Server 2012
Creación de aplicaciones de bases de datos con MS SQL Server 2012
Joseph Lopez795 views
Mejores prácticas para migración de Bases de Datos by Carlos Gustavo Ruiz
Mejores prácticas para migración de Bases de DatosMejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de Datos
Carlos Gustavo Ruiz11.2K views
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos by SolidQ
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
SolidQ3K views
Planes de ejecución 1 by SolidQ
Planes de ejecución 1Planes de ejecución 1
Planes de ejecución 1
SolidQ234 views
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones... by SolidQ
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
SolidQ7.3K views

Similar to Novedades SQL Server 2012 para desarrolladores

Novedades sql server 2008 para developers by
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developersEnrique Catala Bañuls
957 views49 slides
Datawarehouse como servicio en azure (sqldw) by
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Enrique Catala Bañuls
1.2K views50 slides
Datawarehouse como servicio en Azure (sqldw) by
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)SolidQ
728 views50 slides
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008 by
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008Microsoft Argentina y Uruguay [Official Space]
517 views45 slides
SQL Server Fundamentals 3ra Sesion by
SQL Server Fundamentals 3ra SesionSQL Server Fundamentals 3ra Sesion
SQL Server Fundamentals 3ra SesionJulián Castiblanco
586 views29 slides
Oracle Coherence (by Leonardo Torres Altez) by
Oracle Coherence (by Leonardo Torres Altez)Oracle Coherence (by Leonardo Torres Altez)
Oracle Coherence (by Leonardo Torres Altez)barcelonajug
3.6K views50 slides

Similar to Novedades SQL Server 2012 para desarrolladores(20)

Datawarehouse como servicio en Azure (sqldw) by SolidQ
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)
SolidQ728 views
Oracle Coherence (by Leonardo Torres Altez) by barcelonajug
Oracle Coherence (by Leonardo Torres Altez)Oracle Coherence (by Leonardo Torres Altez)
Oracle Coherence (by Leonardo Torres Altez)
barcelonajug3.6K views
Resumen de nuevas caracteriscitas de sql server 2008 by Salvador Ramos
Resumen de nuevas caracteriscitas de sql server 2008Resumen de nuevas caracteriscitas de sql server 2008
Resumen de nuevas caracteriscitas de sql server 2008
Salvador Ramos2K views
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014 by SolidQ
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
SolidQ478 views
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP by Joseph Lopez
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAPNovedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Joseph Lopez1.6K views
Introducción a Microsoft Azure SQL Data Warehouse by Joseph Lopez
Introducción a Microsoft Azure SQL Data WarehouseIntroducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data Warehouse
Joseph Lopez3K views
TSQL menos frecuente desde SQL Server 2005 by SolidQ
TSQL menos frecuente desde SQL Server 2005TSQL menos frecuente desde SQL Server 2005
TSQL menos frecuente desde SQL Server 2005
SolidQ935 views
DENALI: Escalabilidad y Rendimiento by SolidQ
DENALI: Escalabilidad y Rendimiento DENALI: Escalabilidad y Rendimiento
DENALI: Escalabilidad y Rendimiento
SolidQ324 views
Apache Cassandra by Luis Ojeda
Apache CassandraApache Cassandra
Apache Cassandra
Luis Ojeda6.4K views

More from Enrique Catala Bañuls

Sql server ha muerto, larga vida a sql server by
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverEnrique Catala Bañuls
303 views51 slides
Capas de acceso a datos .net escalables de verdad contra SQL Server by
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerEnrique Catala Bañuls
534 views27 slides
Paralelismo en SQL Server by
Paralelismo en SQL ServerParalelismo en SQL Server
Paralelismo en SQL ServerEnrique Catala Bañuls
386 views30 slides
Aplicando R al análisis de rendimiento de un servidor by
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorEnrique Catala Bañuls
152 views20 slides
Técnicas avanzadas para resolver tus problemas de sql server by
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverEnrique Catala Bañuls
1.7K views28 slides
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el... by
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Enrique Catala Bañuls
1.4K views26 slides

More from Enrique Catala Bañuls(20)

Capas de acceso a datos .net escalables de verdad contra SQL Server by Enrique Catala Bañuls
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL Server
Técnicas avanzadas para resolver tus problemas de sql server by Enrique Catala Bañuls
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql server
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el... by Enrique Catala Bañuls
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016) by Enrique Catala Bañuls
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE... by Enrique Catala Bañuls
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...

Recently uploaded

excelavanzado1-231020003159-be608ddc.pdf by
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdforianaisabellaramire
16 views23 slides
Probando aplicaciones basadas en LLMs.pdf by
Probando aplicaciones basadas en LLMs.pdfProbando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdfFederico Toledo
44 views40 slides
RECURSOS INCLUSIVOS.pptx by
RECURSOS INCLUSIVOS.pptxRECURSOS INCLUSIVOS.pptx
RECURSOS INCLUSIVOS.pptxmilenathais2025
9 views15 slides
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real... by
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...codertectura
56 views19 slides
VIDEO INFORMATICA.pptx by
VIDEO INFORMATICA.pptxVIDEO INFORMATICA.pptx
VIDEO INFORMATICA.pptxhenryruidiaz
6 views12 slides
Taller de Electricidad y Electrónica.docx by
Taller de Electricidad y Electrónica.docxTaller de Electricidad y Electrónica.docx
Taller de Electricidad y Electrónica.docxFranksamuel11
7 views15 slides

Recently uploaded(20)

Probando aplicaciones basadas en LLMs.pdf by Federico Toledo
Probando aplicaciones basadas en LLMs.pdfProbando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdf
Federico Toledo44 views
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real... by codertectura
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...
codertectura56 views
Taller de Electricidad y Electrónica.docx by Franksamuel11
Taller de Electricidad y Electrónica.docxTaller de Electricidad y Electrónica.docx
Taller de Electricidad y Electrónica.docx
Franksamuel117 views
Tarea Práctica web de la sesión 14.pptx by illanlir
Tarea Práctica web de la sesión 14.pptxTarea Práctica web de la sesión 14.pptx
Tarea Práctica web de la sesión 14.pptx
illanlir7 views
Tarea-Teclados ergonómico y pantallas táctiles.pptx by xiomarakerly200325
Tarea-Teclados ergonómico y pantallas táctiles.pptxTarea-Teclados ergonómico y pantallas táctiles.pptx
Tarea-Teclados ergonómico y pantallas táctiles.pptx
Tema 3. Fuentes de Energía no renovables.ppt by AlmuPe
Tema 3. Fuentes de Energía no renovables.pptTema 3. Fuentes de Energía no renovables.ppt
Tema 3. Fuentes de Energía no renovables.ppt
AlmuPe171 views
Fundamentos De Electricidad y Electrónica equipo 5.pdf by CamilaCordoba30
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdf
CamilaCordoba3015 views
excelavanzado1-231020003159-be608ddc.pdf by sarahloradorado
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdf
sarahloradorado11 views
MakeCode by Coffe9
MakeCodeMakeCode
MakeCode
Coffe96 views
Excel avanzado.docx by Xian11
Excel avanzado.docxExcel avanzado.docx
Excel avanzado.docx
Xian117 views
fundamentosdeelectricidadyelectronica-231021044044-6e7cadfc.pdf by 8m6zpwytgs
fundamentosdeelectricidadyelectronica-231021044044-6e7cadfc.pdffundamentosdeelectricidadyelectronica-231021044044-6e7cadfc.pdf
fundamentosdeelectricidadyelectronica-231021044044-6e7cadfc.pdf
8m6zpwytgs8 views

Novedades SQL Server 2012 para desarrolladores

  • 1. SQL Server 2012: Novedades SQL Server para desarrolladores Enrique Catalá Bañuls Mentor – Área relacional - SolidQ MCT – MS Technical Ranger – MCTS – MCITP – MAP 2010 ecatala@solidq.com
  • 2. αIngeniero Informático αMentor en SolidQ αMicrosoft Technical Ranger αColaborador destacado en MSDN Spain αMicrosoft Active Professional 2010 αMicrosoft Certified Trainer αMicrosoft Certified IT Professional β Database Developer 2008 β Database Administrator 2008 αArquitecto de entre otros Health Check, SQL2Cloud y SCODA Enrique Catalá
  • 3. Objetivos de la sesión • Especificación robusta de metadatos • Mejoras de TRY-CATCH • Nuevas funciones escalares • Mejoras en formateo de datos • Paginación • Secuencias • Mejoras – FTS – Spatial • CLÁUSULA OVER – Windowing – Análisis
  • 4. Especificacion robusta de metadatos • Podemos definir “contratos” de conjuntos de resultado – Número de resultsets devueltos – Tipos de datos y columnas • Nueva cláusula WITH RESULT SETS permitida: – T-SQL Dinámico – Cláusulas OPENROWSET – Procedimientos almacenados
  • 5. TRY-CATCH y…THROW • Por fin disponemos de operación THROW • Si un THROW no lleva catch asociado, la sesión finaliza • Se permite relanzar hacia arriba en CATCH o ejecución aislada THROW [ { error_number | @local_variable }, { message | @local_variable }, { state | @local_variable } ] [ ; ]
  • 6. Nuevas funciones • EOMONTH(date [, months_to_add]) • DATEFROMPARTS(year, month, day) • TIMEFROMPARTS(hour, minutes, seconds, fractions, scale) • DATETIME2FROMPARTS(year, month, day, hour, minutes, seconds, fractions, scale) • DATETIMEFROMPARTS(year, month, day,hour, minutes, seconds, milliseconds) • SMALLDATETIMEFROMPARTS(year, month, day,hour, minutes) • TRY_CONVERT( data_type [(lenght)], expression [, style]) • FORMAT( value, format [, culture] ) • PARSE( string_value as data_type [USING culture] ) • TRY_CONVERT( string_value as data_type [,USING culture]) • IIF( boolean expr, true_value, false_value) • CHOOSE( index, val1, val2 [, valN]) • CONCAT(val1, val2…[, valN])
  • 7. Mejoras en formateo de datos • FORMAT() – Formatea un valor con máxima flexibilidad – Se pueden generar valores inválidos • PARSE() – Transforma el valor de entrada al tipo especificado – Puede generar excepcion • TRY_PARSE() – Intenta convertir y si puede lo hace – No genera excepciones
  • 8. PAGINACION • “ASYNC_NETWORK_IO”: “Occurs on network writes when the task is blocked behind the network. Verify that the client is processing data from the server.” • “PAGEIOLATCH_SH: “Occurs when a task is waiting on a latch for a buffer that is in an I/O request. The latch request is in Shared mode. Long waits may indicate problems with the disk subsystem.”
  • 9. PAGINACION: Antes… • Con SQL Server 2005 aparecieron las funciones de Ranking – Pudimos empezar a dar solución al problema de la paginación, con algo de imaginación, eso si
  • 10. Paginación: Ahora… • Sintaxis ANSI que puede servir a fines idénticos a TOP(n) • Muchísima mas potente • Filtro aplicado sobre la cláusula ORDER BY • OFFSET indica cuantas filas hay que saltarse • FETCH indica cuantas filas se deben devolver tras el OFFSET • *Por ahora, mismo plan de ejecución
  • 12. Secuencias • Una secuencia es un objeto usado para autogenerar números basados en criterios flexibles • Es la evolución de IDENTITY • Muy flexible y con posibilidad de optimizar su rendimiento • Solo se soporta nombre de dos partes • La equivalencia lógica con IDENTITY
  • 13. Secuencias: ¿Por qué? • Sirven para crear valores de clave en inserciones – Permiten incluso almacenar dicho valor en variable • NEXT VALUE FOR – Función para obtener el siguiente valor de la secuencia • Sp_sequence_get_range – Obtiene un rango de valores de secuencia que mas tarde podremos utilizar
  • 14. Secuencias vs Identity Option Identity Sequences Obtain value before use No Yes Table-Independent No Yes Use in UPDATE No Yes Used in SELECT No Yes Control order Not in SELECT INTO Yes in INSERT SELECT Yes Effected by rollback No No Can associate/disassociate with an existing column No Yes Can define minimum and maximum values No Yes Can cycle No Yes Can change increment No Yes Supports defining caching No Yes Obtain range of values No Yes
  • 15. Secuencias: Rendimiento • Se utiliza por defecto caché de 50 elementos – Identity utiliza cacheo de 10 • Se puede modificar el cacheo e incluso deshabilitar • Cuanto más caching, mas rendimiento – No linear • Posibilidad de huecos ante caidas
  • 16. Secuencias: Rendimiento • Se puede obtener un aumento muy alto utilizando sp_sequence_get_range
  • 17. Full Text Search: Mejoras • Se puede utilizar IFilters como propiedades extendidas para hacer búsquedas en FTS • Ahora por tanto, se puede buscar en las propiedades que exponen de forma óptima α Esto unido al FILETABLE storage…no os da la impresión de que WinFS está dando tufillo? :) create fulltext index on db_X.svceventinfo(file_stream)
  • 18. Full Text Search: Motor • Mejoras del motor entre 7-10x frente a SQL 2008 (Según internals de MS) – Comparado con SQL 2005 más de 60x • En el peor de los casos, tiempos de respuesta iFTS de <3ms • Hasta 350M de documentos por almacenamiento • Incremento de respuesta linear con el nº de CPU
  • 19. Spatial: Mejoras indexación • Ahora hasta 8 Niveles por defecto – Antes 4 – Hasta 256 niveles (antes 32) • GEOGRAPHY_AUTO_GRID y GEOMETRI_AUTO_GRID • Soporte para objetos curvilíneos – CircularString – CompoundCurve – CurvePolygon • Nuevos métodos adaptados – STCurveToLine() – BufferWithCurves() – … • Mayor Precisión
  • 20. Spatial: Novedades • Para mayor precisión, cláusula SPATIAL_WINDOW_MAX_CELL con posibilidad de llegar a 2048 celdas • La mayoría de operadores y métodos se han optimizado • Ya es posible realizar agregaciones – UnionAggregate – EnvelopeAggregate – CollectionAggregate – ConvexHullAggregate • Ya es posible superar el valor de hemisferio lógico SELECT GEOGRAPHY::UnionAggregate(geog) FROM Regions
  • 21. Objetivos de la sesión • Especificación robusta de metadatos • Mejoras de TRY-CATCH • Nuevas funciones escalares • Mejoras en formateo de datos • Paginación • Secuencias • Mejoras – FTS – Spatial • CLÁUSULA OVER – Windowing – Análisis
  • 22. Cálculos sobre conjuntos • Cálculos aplicados a conjuntos de filas • Resolución de problemas – Cursores – Consultas agrupadas – Subconsultas – Joins • Retos – Pensar en modo conjunto – Mezclar cálculos de agrupado y el nivel detalle – Complejidad – Rendimiento
  • 23. Piensa en conjuntos • No te desvíes de la realidad, SQL Server es un motor relacional basado en conjuntos • ¿Entiendes realmente lo que significa conjunto? Definición teórica por Georg Cantor: 1. Un conjunto es una reunión de objetos que cumplen con cierta propiedad (llamados los elementos de ese conjunto) y que, por tanto, queda definido por tal propiedad. 2. Un conjunto es una sola entidad matemática, de modo que puede a su vez ser contenido por otro conjunto 3. Dos conjuntos que tengan los mismos elementos son iguales, luego un conjunto queda determinado por sus elementos En definitiva, una reunión de objetos sin ningún orden y con una propiedad común
  • 24. Mezcla de detalle y cálculos de conjuntos • Las consultas agrupadas imponen condiciones
  • 25. Piensa en conjuntos • Subconsultas – Demasiada información – Cuidado con el orden de evaluación – Cada consulta necesita su resolución independiente
  • 26. Piensa en conjuntos • El pensamiento tradicional produce consultas muy complejas
  • 27. Piensa en conjuntos • Consultas de complejidad cuadrática
  • 28. Mejoras cláusula OVER • Hasta SQL Server 2008 R2 • En SQL Server 2012
  • 29. • Particionamos • Ordenamos • Deslizamos Nuevas construcciones basadas en conjuntos
  • 30. • Conceptualmente, una ventana deslizante existe simultáneamente respecto a cada fila. Debes preparar tu mente para empezar a dar soluciones eficaces Cambia tu forma de pensar α Pensar en una asignación numérica aislada e independiente es erróneo aunque se obtenga el resultado deseado 
  • 31. Nuevas funciones de agregado • En SQL 2012 aparecen nuevas funciones analíticas • De offset – LAG – LEAD – FIRST_VALUE – LAST_VALUE • Distribución – PERCENT_RANK – PERCENTILE_CONT – PERCENTILE_DIST – CUME_DIST
  • 33. Resumen de la sesión • Especificación robusta de metadatos • Mejoras de TRY-CATCH • Nuevas funciones escalares • Mejoras en formateo de datos • Paginación • Secuencias • Mejoras – FTS – Spatial • CLAUSULA OVER – Windowing – Funciones de análisis
  • 35. Enrique Catalá Bañuls Mentor – Área relacional MCT – MS Technical Ranger – MCTS – MCITP – MAP 2010 ecatala@solidq.com