SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
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
Mejoras del lenguaje T-SQL 2012 (parte 2)
Rendimiento de nuevas funciones escalares
Sugerencias para el optimizador de consultas
Secuencias
Window functions
DEMODEMO
Rendimiento de las nuevas funciones escalares
 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.
 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
DEMODEMO
Sugerencias para el optimizador de consultas
Mejoras del lenguaje T-SQL 2012 (parte 2)
Rendimiento de nuevas funciones escalares
Sugerencias para el optimizador de consultas
Secuencias
Window functions
 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?
 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é
 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)
 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
DEMODEMO
Rendimiento de secuencias
 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é
Mejoras del lenguaje T-SQL 2012 (parte 2)
Rendimiento de nuevas funciones escalares
Sugerencias para el optimizador de consultas
Secuencias
Window functions
 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
Window functions
Conceptos clave: Todos juntos
Partition
UNBOUNDED
FOLLOWING
UNBOUNDED
PRECEDING
CURRENT
ROW
Window functions
Sintaxis
Partitioning
Ordering
Slicing/framing
 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
 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
DEMODEMO
Rendimiento de window functions
Mejoras del lenguaje T-SQL 2012 (parte 2)
Rendimiento de nuevas funciones escalares
Sugerencias para el optimizador de consultas
Secuencias
Window functions
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:

Contenu connexe

Tendances

Sql dinamico14042011
Sql dinamico14042011Sql dinamico14042011
Sql dinamico14042011
josecuartas
 
Transact sql
Transact sqlTransact sql
Transact sql
joan
 
Yungan geovanny 6_s_ti_2
Yungan geovanny 6_s_ti_2Yungan geovanny 6_s_ti_2
Yungan geovanny 6_s_ti_2
GeovannyYungan
 

Tendances (19)

103305862 t-sql
103305862 t-sql103305862 t-sql
103305862 t-sql
 
7.1. procedimientos almacenados
7.1.  procedimientos almacenados7.1.  procedimientos almacenados
7.1. procedimientos almacenados
 
Act4 screencast-bdatos cmch
Act4 screencast-bdatos cmchAct4 screencast-bdatos cmch
Act4 screencast-bdatos cmch
 
PreparedStatament
PreparedStatamentPreparedStatament
PreparedStatament
 
Procedimientos almacenados en MySQL
Procedimientos almacenados en MySQLProcedimientos almacenados en MySQL
Procedimientos almacenados en MySQL
 
Bloques
BloquesBloques
Bloques
 
Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
TRANSACT-SQL
TRANSACT-SQLTRANSACT-SQL
TRANSACT-SQL
 
Lenguaje Transact SQL
Lenguaje Transact SQL Lenguaje Transact SQL
Lenguaje Transact SQL
 
Categorias de Procedimientos Almacenados
Categorias de Procedimientos AlmacenadosCategorias de Procedimientos Almacenados
Categorias de Procedimientos Almacenados
 
Sql dinamico14042011
Sql dinamico14042011Sql dinamico14042011
Sql dinamico14042011
 
SQL avanzado
SQL avanzadoSQL avanzado
SQL avanzado
 
Transact sql
Transact sqlTransact sql
Transact sql
 
Lumisaca hector bdii_t7
Lumisaca hector bdii_t7Lumisaca hector bdii_t7
Lumisaca hector bdii_t7
 
Yungan geovanny 6_s_ti_2
Yungan geovanny 6_s_ti_2Yungan geovanny 6_s_ti_2
Yungan geovanny 6_s_ti_2
 
Curso Oracle11g Lenguaje PL/SQL Avanzado
Curso Oracle11g Lenguaje PL/SQL AvanzadoCurso Oracle11g Lenguaje PL/SQL Avanzado
Curso Oracle11g Lenguaje PL/SQL Avanzado
 
1. introduccion a transact-sql
1.  introduccion a transact-sql1.  introduccion a transact-sql
1. introduccion a transact-sql
 
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
 

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

Manual S Q L Sever2000( C E P S U N I)
Manual S Q L Sever2000( C E P S  U N I)Manual S Q L Sever2000( C E P S  U N I)
Manual S Q L Sever2000( C E P S U N I)
Julio Pari
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
yehisam
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
yehisam
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014
JOSE AHIAS LOPEZ PORTILLO
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
usamn
 
Bd T1 Eq7 Caracteristicas Sql Server 2008 Todos
Bd T1 Eq7 Caracteristicas Sql Server 2008 TodosBd T1 Eq7 Caracteristicas Sql Server 2008 Todos
Bd T1 Eq7 Caracteristicas Sql Server 2008 Todos
Armando
 
APLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESAPLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALES
Darwin Durand
 
Oracle enterprise manager
Oracle enterprise managerOracle enterprise manager
Oracle enterprise manager
la77rch
 
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sqlF004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
Miguel Amgo
 

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

Manual S Q L Sever2000( C E P S U N I)
Manual S Q L Sever2000( C E P S  U N I)Manual S Q L Sever2000( C E P S  U N I)
Manual S Q L Sever2000( C E P S U N I)
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Bd T1 Eq7 Caracteristicas Sql Server 2008 Todos
Bd T1 Eq7 Caracteristicas Sql Server 2008 TodosBd T1 Eq7 Caracteristicas Sql Server 2008 Todos
Bd T1 Eq7 Caracteristicas Sql Server 2008 Todos
 
Amnel
AmnelAmnel
Amnel
 
APLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESAPLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALES
 
t-sql
t-sqlt-sql
t-sql
 
Microsotf sql-server 2012
Microsotf sql-server 2012Microsotf sql-server 2012
Microsotf sql-server 2012
 
Sql
SqlSql
Sql
 
lenguaje transact
lenguaje transactlenguaje transact
lenguaje transact
 
lenguaje transact
lenguaje transactlenguaje transact
lenguaje transact
 
Oracle enterprise manager
Oracle enterprise managerOracle enterprise manager
Oracle enterprise manager
 
Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012
 
SQLSaturday Guatemala - SOS de Alto de rendimiento con Window Functions
SQLSaturday Guatemala - SOS de Alto de rendimiento con Window FunctionsSQLSaturday Guatemala - SOS de Alto de rendimiento con Window Functions
SQLSaturday Guatemala - SOS de Alto de rendimiento con Window Functions
 
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sqlF004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
 
Data warehouse
Data warehouseData warehouse
Data warehouse
 
Data warehouse
Data warehouseData warehouse
Data warehouse
 
Data werehousing
Data werehousingData werehousing
Data werehousing
 

Plus de SolidQ

Plus de SolidQ (20)

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantes
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en Linux
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida real
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízate
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocks
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BI
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para Dummies
 
R en relacional
R en relacionalR en relacional
R en relacional
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en Azure
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
 

Dernier

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Dernier (10)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 

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

  • 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
  • 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
  • 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
  • 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: