Your SlideShare is downloading. ×
0
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Mejoras del lenguaje T-SQL 2012 (parte 2) | SolidQ Summit 2012

341

Published on

http://summit.solidq.com/madrid/2012 …

http://summit.solidq.com/madrid/2012
En esta sesión, se parte de las nociones básicas impartidas en la sesión de Mejoras del lenguaje T-SQL 2012 (parte 1) y se profundiza más en detalles importantes como por ejemplo…¿por qué son mas eficientes?, ¿cuándo podemos hacer un uso de las mismas en problemas reales?, ¿Cómo podemos integrarlas en soluciones actuales?

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
341
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
14
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. Mejoras del lenguaje T-SQL 2012 (parte 2) Enrique Catalá Bañuls REL300003 Mentor – Relational engine MAP 2012 – Microsoft Technical Ranger – Microsoft Certified Trainer ecatala@solidq.com
  • 2. Mejoras del lenguaje T-SQL 2012 (parte 2) Rendimiento de nuevas funciones escalares Sugerencias para el optimizador de consultas Secuencias Window functions
  • 3. DEMODEMO Rendimiento de las nuevas funciones escalares
  • 4.  Introducido en SQL 2008 R2 SP1  Especifica que el query optimizer use solo operaciones index seek  En SQL 2012 se puede especificar el índice y sus columnas para controlar mejor el acceso al índice PRECAUCIÓN: Limitar con FORCESEEK puede dar lugar a que no se encuentre ningún plan de ejecución y se devuelva error 8622 Sugerencias para optimizador de consultas FORCESEEK Syntax Example Description Without an index or INDEX hint FROM dbo.MyTable WITH (FORCESEEK) The query optimizer considers only index seek operations to access the table or view through any relevant index. Combined with an INDEX hint FROM dbo.MyTable WITH (FORCESEEK, INDEX (MyIndex)) The query optimizer considers only index seek operations to access the table or view through the specified index. Parameterized by specifying an index and index columns FROM dbo.MyTable WITH (FORCESEEK (MyIndex (col1, col2, col3))) The query optimizer considers only index seek operations to access the table or view through the specified index using at least the specified index columns.
  • 5.  Nuevo hint introducido en SQL 2008R2 SP1  Complementa a FORCESEEK para forzar a la query a solo utilizar indexscan  Útil para escenarios donde el optimizador infraestima el nº de filas devuelto  Soporta el nuevo INDEX hint al igual que FORCESEEK  No se puede usar en combinación con FORCESEEK Sugerencias para optimizador de consultas FORCESCAN
  • 6. DEMODEMO Sugerencias para el optimizador de consultas
  • 7. Mejoras del lenguaje T-SQL 2012 (parte 2) Rendimiento de nuevas funciones escalares Sugerencias para el optimizador de consultas Secuencias Window functions
  • 8.  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 ¿Para qué sirven?
  • 9.  Mejora el rendimiento pre-obteniendo valores en memoria  Se evita escritura en disco para gestión del contador  Por defecto existe cacheo  No se conoce a priori el valor  Como buena práctica siempre hay que especificar un valor  Tendremos comportamiento predecible entre dev-pre-pro environments  Microsoft se reserva el derecho de cambiar el valor de cacheo por defecto entre ediciones de SQL Server, parches y service packs  Si no especificamos un tamaño de cacheo nos arriesgamos que un parche modifique rendimiento de nuestro sistema Secuencias Caché
  • 10.  Si quedan valores libres (por ejemplo, nos toca el 5)  Se calcula el siguiente valor de memoria  Se obtiene el siguiente valor y se actualiza en memoria  Se devuelve dicho valor al que lo solicitó  Si no quedan valores libres (nos toca el valor 16)  Se calcula el siguiente valor de memoria (16)  Se calcula el último valor de la nueva caché (30)  Se bloquea el objeto de secuencia y se guarda el valor (30)  Se devuelve dicho valor y se envía el evento extendido cache_exhausted  Si no hay cache  Parecido al primer caso, pero todo se realiza en el objeto de secuencia (I/O y bloqueos en secuencia) Secuencias Funcionamiento caché (p.ej: cache 15)
  • 11.  Facilitan escenarios parcialmente conectados con sp_sequence_get_range  Aplicación práctica vista en la sesión de “buenas prácticas de codificación de capas de acceso a datos” Secuencias Rendimiento
  • 12. DEMODEMO Rendimiento de secuencias
  • 13.  Se recomienda caché de 40 elementos  En SQL 2012 RTM  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 caídas Secuencias Caché
  • 14. Mejoras del lenguaje T-SQL 2012 (parte 2) Rendimiento de nuevas funciones escalares Sugerencias para el optimizador de consultas Secuencias Window functions
  • 15.  SQL Server 2012 está casi cerca de ofrecernos la implementación completa de window funtions  SQL Serve 2012 introduce:  Reimplementación de cláusula OVER  Casi completa  ORDER BY  Windows Frame  8 nuevas window functions  LAG(), LEAD()  FIRST_VALUE(), LAST_VALUE()  CUME_DIST(),PERCENT_RANK()  PERCENTILE_DISC(), PERCENTILE_COUNT() Window functions SQL 2012
  • 16. Window functions Conceptos clave: Todos juntos Partition UNBOUNDED FOLLOWING UNBOUNDED PRECEDING CURRENT ROW
  • 17. Window functions Sintaxis Partitioning Ordering Slicing/framing
  • 18.  Directamente afectado por el Window Spool Operator  Utilizado para almacenar datos del frame  Dos tipos de ejecución  In-memory  disk-based worktable  In-memory worktable  El mas rápido  Prerequisitos: Frame definido usando cláusula ROWS y que dicho frame sea <10k filas  Disk-based worktable  Por defecto  Usado cuando el frame se define con cláusula RANGE  Usado cuando el frame tiene más de 10k filas Window functions Rendimiento
  • 19.  Crea un índice por la columna de particionado y luego por las columnas de ordenación (en su mismo orden)  Incluye el resto de columnas con la cláusula INCLUDE  Una ejecución a pleno rendimiento consta de:  Scan  Segment  Window spool  Aggregate Window functions Indexing
  • 20. DEMODEMO Rendimiento de window functions
  • 21. Mejoras del lenguaje T-SQL 2012 (parte 2) Rendimiento de nuevas funciones escalares Sugerencias para el optimizador de consultas Secuencias Window functions
  • 22. Si quieres disfrutar de las mejores sesiones de nuestros mentores de España y Latino América, ésta es tu oportunidad. http://summit.solidq.com/madrid/ Síguenos:

×