planes de ejecución 3.0 sql 2016 y v next
TRANSCRIPT
![Page 1: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/1.jpg)
SOLIDQ SUMMIT MADRID 2017
#SQSummit17
Enrique Catalá | Mentor | [email protected] | @enriquecatala
Planes de Ejecución 3.0: SQL Server 2016 y 2017
![Page 2: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/2.jpg)
SOLIDQ SUMMIT MADRID 2017
Agenda
![Page 3: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/3.jpg)
SOLIDQ SUMMIT MADRID 2017SOLIDQ SUMMIT MADRID 2017
• Envia datos a la CPU
• Implementado por
todos los operadores
GetNext()
• Invocaciones
GetNext() fila a fila
• El habitual en OLTP
Row Mode• Invocaciones
GetNext() por ~900
filas
• Beneficios 10x-100x
• Requiere columnstore
Batch Mode
![Page 4: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/4.jpg)
SOLIDQ SUMMIT MADRID 2017SOLIDQ SUMMIT MADRID 2017
Compatibility Level Guarantees
Query Optimizer Improvements under Trace Flag 4199
New Referential Integrity Operator
Parallel Update of Sampled Statistics
Sublinear Threshold for Update of Statistics
Additions to the New Cardinality Estimator (New CE)
Misc. Enhancements
![Page 5: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/5.jpg)
SOLIDQ SUMMIT MADRID 2017SOLIDQ SUMMIT MADRID 2017
Batch query processing in serial queries
Sort operators in batch mode
Window aggregates in batch mode
Distinct aggregates in batch mode
Parallel INSERT SELECT into heaps and CCI
Heap scans for memory-optimized tables
Parallel scans for memory-optimized tables
Sampled and auto-update stats for memory-optimized tables
String and Aggregate Pushdowns
![Page 6: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/6.jpg)
SOLIDQ SUMMIT MADRID 2017SOLIDQ SUMMIT MADRID 2017
Trace flag “mágico” para QO
https://support.microsoft.com/en-us/kb/974006
![Page 7: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/7.jpg)
SOLIDQ SUMMIT MADRID 2017SOLIDQ SUMMIT MADRID 2017
NO_PERFORMANCE_SPOOL
[MAX|MIN]_GRANT_PERCENT
'DISABLE_OPTIMIZED_NESTED_LOOP'
'FORCE_LEGACY_CARDINALITY_ESTIMATION'
'ENABLE_QUERY_OPTIMIZER_HOTFIXES'
'ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES'
'ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS'
'ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS'
'FORCE_DEFAULT_CARDINALITY_ESTIMATION'
'DISABLE_PARAMETER_SNIFFING'
'DISABLE_OPTIMIZER_ROWGOAL'
ENABLE_PARALLEL_PLAN_PREFERENCE
![Page 8: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/8.jpg)
SOLIDQ SUMMIT MADRID 2017
![Page 9: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/9.jpg)
SOLIDQ SUMMIT MADRID 2017SOLIDQ SUMMIT MADRID 2017
Adaptative Query Processing
Plan regression prevention
WAITSTATS en QueryStore
![Page 10: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/10.jpg)
SOLIDQ SUMMIT MADRID 2017SOLIDQ SUMMIT MADRID 2017
Adaptative Joins
• Detectar un mal
operador en
ejecución y
cambiarlo por otro
• Parameter sniffing
bye bye!
Interleaved execution
• MultiStatementTVF
con estimacion de
filas ajustadas al
vuelo
Batch mode memory
grant
• Actualización de
reservas de
memoria para
siguientes
ejecuciones
![Page 11: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/11.jpg)
SOLIDQ SUMMIT MADRID 2017SOLIDQ SUMMIT MADRID 2017
![Page 12: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/12.jpg)
SOLIDQ SUMMIT MADRID 2017SOLIDQ SUMMIT MADRID 2017
COMPATIBILITY LEVEL 140
JOIN eligible para NESTED LOOPS y HASH JOIN
HASH JOIN en batch mode (columnstore)
Alternativas con MERGE JOIN con el mismo outer
reference
![Page 13: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/13.jpg)
SOLIDQ SUMMIT MADRID 2017SOLIDQ SUMMIT MADRID 2017
Ejecutar plan
nuevo
Resumir
optimizacion
usando
cardinalidades
del subarbol
materializado
Materializar
subarbol
Identificar
candidatos para
ejecucion
entrelazada
Comienzo
optimización
![Page 14: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/14.jpg)
SOLIDQ SUMMIT MADRID 2017SOLIDQ SUMMIT MADRID 2017
COMPATIBILITY LEVEL 140
Solo queries (no DML)
Solo para MSTVFs
No usadas en CROSS APPLY
![Page 15: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/15.jpg)
SOLIDQ SUMMIT MADRID 2017
![Page 16: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/16.jpg)
SOLIDQ SUMMIT MADRID 2017SOLIDQ SUMMIT MADRID 2017
AUTOMATIC_TUNING
FLAG a nivel de
BBDD
ON-OFF
DBA útil
No afecta a
nuestras
decisiones
Compatible con
sp_query_store_force_plan
ADMINISTRABLE
Sys.dm_db_tuning_recommendations
![Page 17: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/17.jpg)
SOLIDQ SUMMIT MADRID 2017SOLIDQ SUMMIT MADRID 2017
Enterprise Edition
Compatibility_level = 140
Query Store Activado
AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = ON )
![Page 18: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/18.jpg)
SOLIDQ SUMMIT MADRID 2017
![Page 19: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/19.jpg)
SOLIDQ SUMMIT MADRID 2017
Agenda
![Page 20: Planes de ejecución 3.0 sql 2016 y v next](https://reader031.vdocuments.net/reader031/viewer/2022030317/5a672bc77f8b9a453d8b4c41/html5/thumbnails/20.jpg)
SOLIDQ SUMMITMADRID 2017
Gracias!