Your SlideShare is downloading. ×
  • Like
Novedades SQL Server 2012 para desarrolladores
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Novedades SQL Server 2012 para desarrolladores

  • 1,988 views
Published

Sesión para PASS Latam sobre SQL Server 2012 para desarrolladores

Sesión para PASS Latam sobre SQL Server 2012 para desarrolladores

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,988
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
40
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. SQL Server 2012: Novedades SQLServer para desarrolladoresEnrique Catalá BañulsMentor – Área relacional - SolidQMCT – MS Technical Ranger – MCTS – MCITP – MAP 2010ecatala@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 otrosHealth Check, SQL2Cloud y SCODAEnrique 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 deresultado– 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ónfinaliza• Se permite relanzar hacia arriba en CATCH oejecución aisladaTHROW [ { 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 networkwrites when the task is blocked behind thenetwork. Verify that the client is processing datafrom the server.”• “PAGEIOLATCH_SH: “Occurs when a task iswaiting on a latch for a buffer that is in an I/Orequest. The latch request is in Shared mode. Longwaits may indicate problems with the disksubsystem.”
  • 9. PAGINACION: Antes…• Con SQL Server 2005 aparecieron las funciones deRanking– Pudimos empezar a dar solución al problema de lapaginació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
  • 11. Cláusula OFFSET/FETCH• Clara y concisa
  • 12. Secuencias• Una secuencia es un objeto usado para autogenerar númerosbasados 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 mastarde podremos utilizar
  • 14. Secuencias vs IdentityOption Identity SequencesObtain value before use No YesTable-Independent No YesUse in UPDATE No YesUsed in SELECT No YesControl order Not in SELECT INTOYes in INSERT SELECTYesEffected by rollback No NoCan associate/disassociate with an existingcolumnNo YesCan define minimum and maximum values No YesCan cycle No YesCan change increment No YesSupports defining caching No YesObtain range of values No Yes
  • 15. Secuencias: Rendimiento• Se utiliza por defectocaché de 50 elementos– Identity utiliza cacheode 10• Se puede modificar elcacheo e inclusodeshabilitar• Cuanto más caching,mas rendimiento– No linear• Posibilidad de huecosante caidas
  • 16. Secuencias: Rendimiento• Se puede obtener un aumento muy alto utilizandosp_sequence_get_range
  • 17. Full Text Search: Mejoras• Se puede utilizar IFilters como propiedades extendidas parahacer búsquedas en FTS• Ahora por tanto, se puede buscar en las propiedades queexponen de forma óptimaα Esto unido alFILETABLEstorage…no os da laimpresión de queWinFS está dandotufillo? :)create fulltext index ondb_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 iFTSde <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áusulaSPATIAL_WINDOW_MAX_CELL con posibilidad de llegar a2048 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ógicoSELECT 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 unmotor 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 portal propiedad.2. Un conjunto es una sola entidad matemática, de modo que puede a su vez sercontenido por otro conjunto3. Dos conjuntos que tengan los mismos elementos son iguales, luego unconjunto queda determinado por sus elementosEn definitiva, una reunión de objetos sin ningún orden y con una propiedad común
  • 24. Mezcla de detalle y cálculos deconjuntos• Las consultas agrupadas imponen condiciones
  • 25. Piensa en conjuntos• Subconsultas– Demasiadainformación– Cuidado con elorden deevaluación– Cada consultanecesita suresoluciónindependiente
  • 26. Piensa en conjuntos• El pensamiento tradicional produce consultas muycomplejas
  • 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• DeslizamosNuevas construcciones basadas enconjuntos
  • 30. • Conceptualmente, una ventana deslizante existesimultáneamente respecto a cada fila. Debes preparar tumente para empezar a dar soluciones eficacesCambia tu forma de pensarα Pensar en una asignación numérica aislada e independiente eserró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
  • 32. Abre tu mente 
  • 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
  • 34. Enrique Catalá BañulsMentor – Área relacionalMCT – MS Technical Ranger – MCTS – MCITP – MAP 2010ecatala@solidq.com