SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
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:

Mais conteúdo relacionado

Mais procurados (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
 

Semelhante a 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 ddlyehisam
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddlyehisam
 
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 2014JOSE AHIAS LOPEZ PORTILLO
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddlusamn
 
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 TodosArmando
 
APLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESAPLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESDarwin Durand
 
lenguaje transact
lenguaje transactlenguaje transact
lenguaje transactbandida123
 
lenguaje transact
lenguaje transactlenguaje transact
lenguaje transactbandida123
 
Oracle enterprise manager
Oracle enterprise managerOracle enterprise manager
Oracle enterprise managerla77rch
 
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 2012Antonio Ortiz
 
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 FunctionsJOSE AHIAS LOPEZ PORTILLO
 
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 sqlMiguel Amgo
 

Semelhante a 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
 

Mais de SolidQ

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 ServicesSolidQ
 
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. RLSSolidQ
 
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
 
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
 
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 mutantesSolidQ
 
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?SolidQ
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en LinuxSolidQ
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida realSolidQ
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízateSolidQ
 
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 stocksSolidQ
 
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 BISolidQ
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesSolidQ
 
R en relacional
R en relacionalR en relacional
R en relacionalSolidQ
 
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!!SolidQ
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en AzureSolidQ
 
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 2018SolidQ
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018SolidQ
 
¿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 2018SolidQ
 
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 2018SolidQ
 
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...SolidQ
 

Mais 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...
 

Último

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Último (15)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

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: