SlideShare una empresa de Scribd logo
Automatic Tunning en
SQL Server 2017
Bienvenida
• Ing. Eduardo Castro, PhD
• MVP de Microsoft SQL Server
• PASS Regional de Mentor
• PASS Board of Directors
• http://www.youtube.com/eduardocastrom
¿por qué automatic tunning?
3
• Una de las principales tareas de la administración de bases de datos es supervisar la
carga de trabajo, identificar las consultas críticas de Transact-SQL, los índices que se
deben agregar para mejorar el desempeño y los índices raramente utilizados.
• El motor de base de datos proporciona una visión detallada de las consultas e
índices que necesita supervisar. Sin embargo, la constante supervisión de la base de
datos es una tarea ardua y tediosa, especialmente cuando se trata de muchas bases
de datos.
• La administración de un gran número de bases de datos podría ser imposible de
hacer de manera eficiente. En lugar de monitorear y afinar su base de datos
manualmente, puede considerar delegar algunas de las acciones de monitoreo y
tuning en el motor de base de datos usando la función de automatic tunning.
Automatic tunning
4
• El automatic tunning es una función de base de datos que proporciona
información sobre posibles problemas de desempeño de consultas,
recomienda soluciones y corrige automáticamente los problemas
identificados.
• El automatic tunning en SQL Server 2017 (14. x) le notifica cada vez
que se detecta un problema de desempeño potencial, y le permite
aplicar acciones correctivas o permite que el motor de base de datos
corrija automáticamente los problemas de rendimiento.
• El automatic tunning en SQL Server 2017 (14. x) le permite identificar y
corregir problemas de rendimiento causados por Regresiones de la
elección del Plan de SQL. El automatic tunning en Azure SQL
Database crea índices necesarios y borra índices no utilizados.
Automatic tunning
5
• El motor de base de datos supervisa las consultas que se ejecutan
en la base de datos y mejora automáticamente el rendimiento de
la carga de trabajo.
• El motor de base de datos tiene un mecanismo de inteligencia
integrado que puede ajustar y mejorar automáticamente el
rendimiento de sus consultas mediante la adaptación dinámica
de la base de datos a su carga de trabajo.
Automatic tunning
6
• Existen dos funciones de automatic tunning disponibles:
• Corrección automática del plan (disponible en SQL Server 2017
(14. x) y Azure SQL Database) que identifica los planes de
ejecución de consultas problemáticos y corrige los problemas de
rendimiento del plan SQL.
• Gestión automática de índices (disponible sólo en Azure SQL
Database) que identifica los índices que se deben agregar en la
base de datos y los índices que deben eliminarse.
¿Cómo funciona el automatic tunning?
7
• El automatic tunning es un proceso continuo de monitoreo y
análisis que aprende constantemente sobre las características de
su carga de trabajo e identifica los posibles problemas y mejoras.
¿Cómo funciona el automatic tunning?
8
• Este proceso permite que la base de datos se adapte
dinámicamente a su carga de trabajo al encontrar qué índices y
planes podrían mejorar el rendimiento de sus cargas de trabajo y
qué índices afectan a sus cargas de trabajo.
• Basándose en estos hallazgos, El automatic tunning aplica
acciones de afinación que mejoran el rendimiento de su carga de
trabajo.
¿Cómo funciona El automatic tunning?
9
• Además, la base de datos supervisa continuamente el
rendimiento después de cualquier cambio realizado mediante El
automatic tunning para garantizar que mejora el rendimiento de
su carga de trabajo.
• Cualquier acción que no mejore el rendimiento se revierte
automáticamente. Este proceso de verificación es una
característica clave que garantiza que cualquier cambio realizado
por El automatic tunning no disminuye el rendimiento de su
carga de trabajo.
Corrección automática del plan
10
• La corrección automática del plan es una función de automatic
tunning que identifica Regresión de la elección de planes SQL y
corregir automáticamente el problema forzando el último buen
plan conocido.
¿Qué es la regresión de la elección del plan SQL?
11
• El motor de base de datos de SQL Server puede utilizar diferentes
planes SQL para ejecutar las consultas de Transact-SQL.
• Los planes de consulta dependen de las estadísticas, índices y
otros factores. El plan óptimo que debería utilizarse para ejecutar
una consulta de Transact-SQL podría cambiarse con el tiempo.
• En algunos casos, el nuevo plan podría no ser mejor que el
anterior, y el nuevo plan podría causar una regresión del
rendimiento.
¿Qué es la regresión de la elección del plan SQL?
12
• El motor de base de datos de SQL Server puede utilizar diferentes
planes SQL para ejecutar las consultas de Transact-SQL.
• Los planes de consulta dependen de las estadísticas, índices y
otros factores. El plan óptimo que debería utilizarse para ejecutar
una consulta de Transact-SQL podría cambiarse con el tiempo.
• En algunos casos, el nuevo plan podría no ser mejor que el
anterior, y el nuevo plan podría causar una regresión del
rendimiento.
¿Qué es la regresión de la elección del plan SQL?
13
¿Qué es la regresión de la elección del plan SQL?
14
• Siempre que note la regresión de la elección del plan, debe
encontrar algún buen plan previo y forzarlo en lugar del actual
usando sp_query_store_force_plan.
• El motor de base de datos en SQL Server 2017 (14. x) proporciona
información sobre los planes regresivos y las acciones correctivas
recomendadas.
• Además, el motor de base de datos le permite automatizar
completamente este proceso y permitir que el motor de base de
datos solucione cualquier problema que se encuentre relacionado
con los cambios del plan.
Corrección automática de la elección del plan
15
• El motor de base de datos puede cambiar automáticamente al
último buen plan conocido siempre que se detecte la regresión
de la opción del plan.
• El motor de base de datos detecta automáticamente cualquier
posible regresión de la opción del plan, incluyendo el plan que
debe usarse en lugar del plan incorrecto.
• Cuando el motor de base de datos aplica el último buen plan
conocido, supervisa automáticamente el rendimiento del plan
forzado.
Corrección automática de la elección del plan
16
• Si el plan forzado no es mejor que el plan regresado, el nuevo
plan no se forzará y el motor de base de datos compilará un
nuevo plan.
• Si el motor de base de datos comprueba que el plan forzado es
mejor que el que retrocede, el plan forzado se mantendrá hasta
que se Recompile (por ejemplo, en las próximas estadísticas o
cambio de esquema) si es mejor que el plan regresado.
• Nota: cualquier plan auto forzado no persite en un reinicio de la
instancia de SQL Server.
Corrección automática de la elección del plan
17
Activación de la corrección automática de opciones de plan
18
• Puede habilitar El automatic tunning por base de datos y
especificar que se debe forzar el último buen plan siempre que se
detecte alguna regresión del cambio de plan.
• El automatic tunning está activada mediante el siguiente
comando:
ALTER DATABASE current SET AUTOMATIC_TUNING
( FORCE_LAST_GOOD_PLAN = ON );
Activación de la corrección automática de opciones de plan
19
• Una vez que encienda esta opción, el motor de base de datos
forzará automáticamente cualquier recomendación donde
• La ganancia de CPU estimada es superior a 10 segundos
• El número de errores en el nuevo plan es mayor que el número de errores
en el plan recomendado
• Verifique que el plan forzado sea mejor que el actual.
Corrección alternativa-manual del plan de la opción
20
• Sin el automatic tunning, los usuarios deben monitorear periódicamente el sistema
y buscar las consultas que regresaron.
• Si algún plan regresed, el usuario debe encontrar algún buen plan anterior y
forzarlo en vez del actual usando sp_query_store_force_plan.
• La mejor práctica sería forzar el último buen plan conocido porque los planes
antiguos podrían ser inválidos debido a cambios estadísticos o de índices.
• El usuario que obligue al último buen plan conocido debe supervisar el
rendimiento de la consulta que se ejecuta utilizando el plan forzado y verificar que
el plan forzado funciona como se esperaba.
Corrección alternativa-manual del plan de la opción
21
• Dependiendo de los resultados de la supervisión y el análisis, el
plan debe ser forzado o el usuario debe encontrar alguna otra
manera de optimizar la consulta.
• Los planes manualmente forzados no deben ser forzados para
siempre, porque el motor de base de datos debe poder aplicar
planes óptimos.
• El usuario o DBA debe eventualmente desforzar el plan usando
sp_query_store_unforce_plan procedimiento, y dejar que el motor
de base de datos encontrar el plan óptimo.
Corrección alternativa-manual del plan de la opción
22
• En SQL Server 2016 (13. x), puede encontrar regresiones de la opción de
plan mediante vistas del sistema de almacén de consultas.
• En SQL Server 2017 (14. x), el motor de base de datos detecta y muestra las
posibles regresiones de la elección del plan y las acciones recomendadas
que deben aplicarse en el Sys. DM _db_tuning_recommendations vIsta
(Transact-SQL).
• La vista muestra información sobre el problema, la importancia del
problema y detalles como la consulta identificada, el identificador del plan
de retroceso, el identificador del plan que se usó como base para la
comparación y la instrucción Transact-SQL que se puede ejecutar para
corregir el Problema.
Corrección alternativa-manual del plan de la opción
23
type description datetime score details …
FORCE_LAST_G
OOD_PLAN
CPU time
changed from
4 ms to 14 ms
3/17/2017 83 queryId recom
mendedPlanIdr
egressedPlanId
T-SQL
FORCE_LAST_G
OOD_PLAN
CPU time
changed from
37 ms to 84 ms
3/16/2017 26 queryId recom
mendedPlanIdr
egressedPlanId
T-SQL
Corrección alternativa-manual del plan de la opción
24
• Tipo de la acción recomendada-FORCE_LAST_GOOD_PLAN.
• Descripción que contiene información por qué motor de base de datos
piensa que este cambio del plan es una regresión potencial del
rendimiento.
• Fecha cuando se detecta la regresión potencial.
• Puntuación de esta recomendación.
• Detalles tales como ID del plan detectado, ID del plan regresado, ID
del plan que se debe forzar para corregir el problema, script de
Transact-SQL que se puede aplicar para solucionar el problema, etc.
Los detalles se almacenan en formato JSON.
Información sobre la ganancia estimada
25
SELECT reason, score,
script = JSON_VALUE(details, '$.implementationDetails.script’),
planForceDetails.*,
estimated_gain = (regressedPlanExecutionCount+recommendedPlanExecutionCount)
*(regressedPlanCpuTimeAverage-recommendedPlanCpuTimeAverage)/1000000,
error_prone = IIF(regressedPlanErrorCount>recommendedPlanErrorCount,
'YES','NO’)
FROM sys.dm_db_tuning_recommendations
CROSS APPLY OPENJSON (Details, '$.planForceDetails’)
WITH ( [query_id] int '$.queryId’,
[current plan_id] int '$.regressedPlanId’,
[recommended plan_id] int '$.recommendedPlanId’,
regressedPlanErrorCount int, recommendedPlanErrorCount int,
regressedPlanExecutionCount int,
regressedPlanCpuTimeAverage float,
recommendedPlanExecutionCount int,
recommendedPlanCpuTimeAverage float ) as planForceDetails;
Información sobre la ganancia estimada
26
• Estimated_gain representa el número estimado de segundos que
se guardarían si el plan recomendado se ejecutaría en lugar del
plan actual.
• El plan recomendado debe ser forzado en lugar del plan actual si
la ganancia es mayor de 10 segundos.
• Nota: los datos de este DMV no persisten después de reiniciar la
instancia de SQL Server.
Ajuste automático en Azure SQL Database
27
• El ajuste automático es un servicio completamente administrado
que usa la inteligencia integrada para supervisar continuamente
las consultas ejecutadas en una base de datos y mejora
automáticamente su rendimiento.
• Esto se logra mediante la adaptación dinámica de la base de
datos a las cargas de trabajo cambiantes y la aplicación de las
recomendaciones de ajuste.
Ajuste automático en Azure SQL Database
28
• El ajuste automático aprende horizontalmente a partir de todas
las bases de datos de Azure mediante la inteligencia artificial y
mejora dinámicamente sus acciones de ajuste.
• Cuanto más tiempo se ejecute una base de datos de Azure SQL
Database con el ajuste automático activado, mejor rendimiento
tendrá.
Cómo le puede ayudar el ajuste automático
29
• Ajuste del rendimiento automatizado de bases de datos de Azure
SQL Database
• Comprobación automática de mejoras de rendimiento
• Corrección y reversión automatizadas
• Registro del historial de ajustes
• Scripts T-SQL de acción de ajuste para implementaciones
manuales
• Supervisión proactiva del rendimiento de las cargas de trabajo
• Funcionalidad de escalabilidad horizontal de cientos de miles de
bases de datos
• Impacto positivo para los recursos de DevOps y el costo total de
propiedad
Cómo funciona
30
• El sistema se ha diseñado cuidadosamente para que no interfiera
con las cargas de trabajo del usuario.
• Las recomendaciones de ajuste automático se aplican solo
durante momentos de uso escaso.
• El sistema también puede deshabilitar temporalmente las
operaciones de ajuste automático para proteger el rendimiento
de la carga de trabajo.
Cómo funciona
31
Opciones de ajuste automático
32
• Las opciones de ajuste automático disponibles en Azure SQL
Database son:
• CREATE INDEX: identifica los índices que pueden mejorar el rendimiento
de la carga de trabajo, crea índices y comprueba automáticamente que el
rendimiento de las consultas ha mejorado.
• DROP INDEX: identifica los índices duplicados y redundantes, y aquellos
que no se han usado durante un período largo de tiempo.
• FORCE LAST GOOD PLAN: identifica consultas SQL que usan un plan de
ejecución más lento que el plan correcto anterior, y consultas que usan el
último plan correcto conocido, en lugar del plan revertido.
Uso del ajuste automático
33
• El ajuste automático debe habilitarse manualmente en la
suscripción.
• Para habilitar el ajuste automático mediante Azure Portal
Gestión automática de índices
34
• En Azure SQL Database, la administración de índices es fácil
porque Azure SQL Database aprende acerca de su carga de
trabajo y asegura que sus datos siempre se indexan de forma
óptima.
• El diseño correcto del índice es crucial para el funcionamiento
óptimo de su carga de trabajo, y la gerencia automática del índice
puede ayudarle a optimizar sus índices.
• La administración automática de índices puede corregir
problemas de desempeño en bases de datos indexadas
incorrectamente, o mantener y mejorar índices en el esquema de
base ya existente.
Gestión automática de índices
35
• El automatic tunning en Azure SQL Database realiza las siguientes
acciones:
• Identifica los índices que podrían mejorar el rendimiento de las consultas
T-SQL que leen los datos de las tablas.
• Identifica los índices o índices redundantes que no se utilizaron en un
período de tiempo más prolongado que podría eliminarse. La eliminación
de índices innecesarios mejora el rendimiento de las consultas que
actualizan datos en tablas.
Demostración

Más contenido relacionado

PPT
Sql Server
PDF
Clases y objetos de java
PPTX
HISTORIA DE LAS BASES DE DATOS
PDF
PDF
Ventajas y desventajas de los modelos de bd
PDF
HERANÇA - Programação Orientada a Objetos JAVA
DOC
online training for IBM DB2 LUW UDB DBA
PPTX
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Sql Server
Clases y objetos de java
HISTORIA DE LAS BASES DE DATOS
Ventajas y desventajas de los modelos de bd
HERANÇA - Programação Orientada a Objetos JAVA
online training for IBM DB2 LUW UDB DBA
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)

La actualidad más candente (20)

PPTX
Banco de dados orientados a objetos
PDF
Base de Dados - Introdução
KEY
Fundamentos de Bases de Datos - Introducción
PDF
Banco de Dados - MySQL Basico
PDF
Flujo datos
PPT
Less05 storage
PDF
VMware vSphere Networking deep dive
PPT
Introdução a Bancos de Dados
PPTX
Taller de Base de Datos - Unidad 4 seguridad
PPT
Less05 asm instance
PPTX
Novedades en sql server 2022
PPT
PPT
Engenharia Requisitos - Aula4 06 03 2006
PPTX
Normalização - Banco de Dados
PDF
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
PPTX
Análise Orientada a Objetos com UML
PDF
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
PPTX
Domain name system
PPTX
Fundamentos de base de datos 1a. unidad
ODP
Aula13 - Estrutura de repetição (for e while) - PHP
Banco de dados orientados a objetos
Base de Dados - Introdução
Fundamentos de Bases de Datos - Introducción
Banco de Dados - MySQL Basico
Flujo datos
Less05 storage
VMware vSphere Networking deep dive
Introdução a Bancos de Dados
Taller de Base de Datos - Unidad 4 seguridad
Less05 asm instance
Novedades en sql server 2022
Engenharia Requisitos - Aula4 06 03 2006
Normalização - Banco de Dados
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
Análise Orientada a Objetos com UML
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Domain name system
Fundamentos de base de datos 1a. unidad
Aula13 - Estrutura de repetição (for e while) - PHP
Publicidad

Similar a SQL Server 2017 Tunning Automatico (14)

PDF
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
PPT
Afinamientodebasesdedatosyservidoreswebs
PPTX
Performance Tuning en Azure SQL Database
PPTX
Query Store en SQL 2016
PDF
Sql tuning without trying arup nanda ls
PDF
Column stored index
PPTX
Query Store al rescate - PASS Spanish
PDF
Tips y sugerencias
PPTX
Introducción al SQL Server 2016 Query Store
PPTX
SQL Server 2014 Mejoras del DB Engine
PPT
Tuning fondo-negro-2
PPTX
SQL Server rápido y furioso
PPTX
Charla sql server 2012 cibertec
PPTX
Indices Columnares en SQL Server 2014
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Afinamientodebasesdedatosyservidoreswebs
Performance Tuning en Azure SQL Database
Query Store en SQL 2016
Sql tuning without trying arup nanda ls
Column stored index
Query Store al rescate - PASS Spanish
Tips y sugerencias
Introducción al SQL Server 2016 Query Store
SQL Server 2014 Mejoras del DB Engine
Tuning fondo-negro-2
SQL Server rápido y furioso
Charla sql server 2012 cibertec
Indices Columnares en SQL Server 2014
Publicidad

Más de Eduardo Castro (20)

PPTX
Introducción a polybase en SQL Server
PPTX
Creando tu primer ambiente de AI en Azure ML y SQL Server
PPTX
Seguridad en SQL Azure
PPTX
Azure Synapse Analytics MLflow
PPTX
SQL Server 2019 con Windows Server 2022
PPTX
Novedades en SQL Server 2022
PPTX
Introduccion a SQL Server 2022
PPTX
Machine Learning con Azure Managed Instance
PDF
Sql server 2019 con windows server 2022
PDF
Introduccion a databricks
PDF
Pronosticos con sql server
PDF
Data warehouse con azure synapse analytics
PPTX
Que hay de nuevo en el Azure Data Lake Storage Gen2
PPTX
Introduccion a Azure Synapse Analytics
PPTX
Seguridad de SQL Database en Azure
PPTX
Python dentro de SQL Server
PDF
Servicios Cognitivos de de Microsoft
TXT
Script de paso a paso de configuración de Secure Enclaves
PDF
Introducción a conceptos de SQL Server Secure Enclaves
PDF
Que es azure sql datawarehouse
Introducción a polybase en SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL Server
Seguridad en SQL Azure
Azure Synapse Analytics MLflow
SQL Server 2019 con Windows Server 2022
Novedades en SQL Server 2022
Introduccion a SQL Server 2022
Machine Learning con Azure Managed Instance
Sql server 2019 con windows server 2022
Introduccion a databricks
Pronosticos con sql server
Data warehouse con azure synapse analytics
Que hay de nuevo en el Azure Data Lake Storage Gen2
Introduccion a Azure Synapse Analytics
Seguridad de SQL Database en Azure
Python dentro de SQL Server
Servicios Cognitivos de de Microsoft
Script de paso a paso de configuración de Secure Enclaves
Introducción a conceptos de SQL Server Secure Enclaves
Que es azure sql datawarehouse

Último (20)

DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
SAP Transportation Management para LSP, TM140 Col18
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PDF
CyberOps Associate - Cisco Networking Academy
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
modulo seguimiento 1 para iniciantes del
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
PPTX
Curso de generación de energía mediante sistemas solares
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
capacitación de aire acondicionado Bgh r 410
PDF
clase auditoria informatica 2025.........
PDF
Diapositiva proyecto de vida, materia catedra
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PDF
MANUAL de recursos humanos para ODOO.pdf
Zarate Quispe Alex aldayir aplicaciones de internet .docx
SAP Transportation Management para LSP, TM140 Col18
TRABAJO DE TECNOLOGIA.pdf...........................
CyberOps Associate - Cisco Networking Academy
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
El-Gobierno-Electrónico-En-El-Estado-Bolivia
modulo seguimiento 1 para iniciantes del
Historia Inteligencia Artificial Ana Romero.pptx
Curso de generación de energía mediante sistemas solares
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
capacitación de aire acondicionado Bgh r 410
clase auditoria informatica 2025.........
Diapositiva proyecto de vida, materia catedra
introduccion a las_web en el 2025_mejoras.ppt
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
MANUAL de recursos humanos para ODOO.pdf

SQL Server 2017 Tunning Automatico

  • 2. Bienvenida • Ing. Eduardo Castro, PhD • MVP de Microsoft SQL Server • PASS Regional de Mentor • PASS Board of Directors • http://www.youtube.com/eduardocastrom
  • 3. ¿por qué automatic tunning? 3 • Una de las principales tareas de la administración de bases de datos es supervisar la carga de trabajo, identificar las consultas críticas de Transact-SQL, los índices que se deben agregar para mejorar el desempeño y los índices raramente utilizados. • El motor de base de datos proporciona una visión detallada de las consultas e índices que necesita supervisar. Sin embargo, la constante supervisión de la base de datos es una tarea ardua y tediosa, especialmente cuando se trata de muchas bases de datos. • La administración de un gran número de bases de datos podría ser imposible de hacer de manera eficiente. En lugar de monitorear y afinar su base de datos manualmente, puede considerar delegar algunas de las acciones de monitoreo y tuning en el motor de base de datos usando la función de automatic tunning.
  • 4. Automatic tunning 4 • El automatic tunning es una función de base de datos que proporciona información sobre posibles problemas de desempeño de consultas, recomienda soluciones y corrige automáticamente los problemas identificados. • El automatic tunning en SQL Server 2017 (14. x) le notifica cada vez que se detecta un problema de desempeño potencial, y le permite aplicar acciones correctivas o permite que el motor de base de datos corrija automáticamente los problemas de rendimiento. • El automatic tunning en SQL Server 2017 (14. x) le permite identificar y corregir problemas de rendimiento causados por Regresiones de la elección del Plan de SQL. El automatic tunning en Azure SQL Database crea índices necesarios y borra índices no utilizados.
  • 5. Automatic tunning 5 • El motor de base de datos supervisa las consultas que se ejecutan en la base de datos y mejora automáticamente el rendimiento de la carga de trabajo. • El motor de base de datos tiene un mecanismo de inteligencia integrado que puede ajustar y mejorar automáticamente el rendimiento de sus consultas mediante la adaptación dinámica de la base de datos a su carga de trabajo.
  • 6. Automatic tunning 6 • Existen dos funciones de automatic tunning disponibles: • Corrección automática del plan (disponible en SQL Server 2017 (14. x) y Azure SQL Database) que identifica los planes de ejecución de consultas problemáticos y corrige los problemas de rendimiento del plan SQL. • Gestión automática de índices (disponible sólo en Azure SQL Database) que identifica los índices que se deben agregar en la base de datos y los índices que deben eliminarse.
  • 7. ¿Cómo funciona el automatic tunning? 7 • El automatic tunning es un proceso continuo de monitoreo y análisis que aprende constantemente sobre las características de su carga de trabajo e identifica los posibles problemas y mejoras.
  • 8. ¿Cómo funciona el automatic tunning? 8 • Este proceso permite que la base de datos se adapte dinámicamente a su carga de trabajo al encontrar qué índices y planes podrían mejorar el rendimiento de sus cargas de trabajo y qué índices afectan a sus cargas de trabajo. • Basándose en estos hallazgos, El automatic tunning aplica acciones de afinación que mejoran el rendimiento de su carga de trabajo.
  • 9. ¿Cómo funciona El automatic tunning? 9 • Además, la base de datos supervisa continuamente el rendimiento después de cualquier cambio realizado mediante El automatic tunning para garantizar que mejora el rendimiento de su carga de trabajo. • Cualquier acción que no mejore el rendimiento se revierte automáticamente. Este proceso de verificación es una característica clave que garantiza que cualquier cambio realizado por El automatic tunning no disminuye el rendimiento de su carga de trabajo.
  • 10. Corrección automática del plan 10 • La corrección automática del plan es una función de automatic tunning que identifica Regresión de la elección de planes SQL y corregir automáticamente el problema forzando el último buen plan conocido.
  • 11. ¿Qué es la regresión de la elección del plan SQL? 11 • El motor de base de datos de SQL Server puede utilizar diferentes planes SQL para ejecutar las consultas de Transact-SQL. • Los planes de consulta dependen de las estadísticas, índices y otros factores. El plan óptimo que debería utilizarse para ejecutar una consulta de Transact-SQL podría cambiarse con el tiempo. • En algunos casos, el nuevo plan podría no ser mejor que el anterior, y el nuevo plan podría causar una regresión del rendimiento.
  • 12. ¿Qué es la regresión de la elección del plan SQL? 12 • El motor de base de datos de SQL Server puede utilizar diferentes planes SQL para ejecutar las consultas de Transact-SQL. • Los planes de consulta dependen de las estadísticas, índices y otros factores. El plan óptimo que debería utilizarse para ejecutar una consulta de Transact-SQL podría cambiarse con el tiempo. • En algunos casos, el nuevo plan podría no ser mejor que el anterior, y el nuevo plan podría causar una regresión del rendimiento.
  • 13. ¿Qué es la regresión de la elección del plan SQL? 13
  • 14. ¿Qué es la regresión de la elección del plan SQL? 14 • Siempre que note la regresión de la elección del plan, debe encontrar algún buen plan previo y forzarlo en lugar del actual usando sp_query_store_force_plan. • El motor de base de datos en SQL Server 2017 (14. x) proporciona información sobre los planes regresivos y las acciones correctivas recomendadas. • Además, el motor de base de datos le permite automatizar completamente este proceso y permitir que el motor de base de datos solucione cualquier problema que se encuentre relacionado con los cambios del plan.
  • 15. Corrección automática de la elección del plan 15 • El motor de base de datos puede cambiar automáticamente al último buen plan conocido siempre que se detecte la regresión de la opción del plan. • El motor de base de datos detecta automáticamente cualquier posible regresión de la opción del plan, incluyendo el plan que debe usarse en lugar del plan incorrecto. • Cuando el motor de base de datos aplica el último buen plan conocido, supervisa automáticamente el rendimiento del plan forzado.
  • 16. Corrección automática de la elección del plan 16 • Si el plan forzado no es mejor que el plan regresado, el nuevo plan no se forzará y el motor de base de datos compilará un nuevo plan. • Si el motor de base de datos comprueba que el plan forzado es mejor que el que retrocede, el plan forzado se mantendrá hasta que se Recompile (por ejemplo, en las próximas estadísticas o cambio de esquema) si es mejor que el plan regresado. • Nota: cualquier plan auto forzado no persite en un reinicio de la instancia de SQL Server.
  • 17. Corrección automática de la elección del plan 17
  • 18. Activación de la corrección automática de opciones de plan 18 • Puede habilitar El automatic tunning por base de datos y especificar que se debe forzar el último buen plan siempre que se detecte alguna regresión del cambio de plan. • El automatic tunning está activada mediante el siguiente comando: ALTER DATABASE current SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON );
  • 19. Activación de la corrección automática de opciones de plan 19 • Una vez que encienda esta opción, el motor de base de datos forzará automáticamente cualquier recomendación donde • La ganancia de CPU estimada es superior a 10 segundos • El número de errores en el nuevo plan es mayor que el número de errores en el plan recomendado • Verifique que el plan forzado sea mejor que el actual.
  • 20. Corrección alternativa-manual del plan de la opción 20 • Sin el automatic tunning, los usuarios deben monitorear periódicamente el sistema y buscar las consultas que regresaron. • Si algún plan regresed, el usuario debe encontrar algún buen plan anterior y forzarlo en vez del actual usando sp_query_store_force_plan. • La mejor práctica sería forzar el último buen plan conocido porque los planes antiguos podrían ser inválidos debido a cambios estadísticos o de índices. • El usuario que obligue al último buen plan conocido debe supervisar el rendimiento de la consulta que se ejecuta utilizando el plan forzado y verificar que el plan forzado funciona como se esperaba.
  • 21. Corrección alternativa-manual del plan de la opción 21 • Dependiendo de los resultados de la supervisión y el análisis, el plan debe ser forzado o el usuario debe encontrar alguna otra manera de optimizar la consulta. • Los planes manualmente forzados no deben ser forzados para siempre, porque el motor de base de datos debe poder aplicar planes óptimos. • El usuario o DBA debe eventualmente desforzar el plan usando sp_query_store_unforce_plan procedimiento, y dejar que el motor de base de datos encontrar el plan óptimo.
  • 22. Corrección alternativa-manual del plan de la opción 22 • En SQL Server 2016 (13. x), puede encontrar regresiones de la opción de plan mediante vistas del sistema de almacén de consultas. • En SQL Server 2017 (14. x), el motor de base de datos detecta y muestra las posibles regresiones de la elección del plan y las acciones recomendadas que deben aplicarse en el Sys. DM _db_tuning_recommendations vIsta (Transact-SQL). • La vista muestra información sobre el problema, la importancia del problema y detalles como la consulta identificada, el identificador del plan de retroceso, el identificador del plan que se usó como base para la comparación y la instrucción Transact-SQL que se puede ejecutar para corregir el Problema.
  • 23. Corrección alternativa-manual del plan de la opción 23 type description datetime score details … FORCE_LAST_G OOD_PLAN CPU time changed from 4 ms to 14 ms 3/17/2017 83 queryId recom mendedPlanIdr egressedPlanId T-SQL FORCE_LAST_G OOD_PLAN CPU time changed from 37 ms to 84 ms 3/16/2017 26 queryId recom mendedPlanIdr egressedPlanId T-SQL
  • 24. Corrección alternativa-manual del plan de la opción 24 • Tipo de la acción recomendada-FORCE_LAST_GOOD_PLAN. • Descripción que contiene información por qué motor de base de datos piensa que este cambio del plan es una regresión potencial del rendimiento. • Fecha cuando se detecta la regresión potencial. • Puntuación de esta recomendación. • Detalles tales como ID del plan detectado, ID del plan regresado, ID del plan que se debe forzar para corregir el problema, script de Transact-SQL que se puede aplicar para solucionar el problema, etc. Los detalles se almacenan en formato JSON.
  • 25. Información sobre la ganancia estimada 25 SELECT reason, score, script = JSON_VALUE(details, '$.implementationDetails.script’), planForceDetails.*, estimated_gain = (regressedPlanExecutionCount+recommendedPlanExecutionCount) *(regressedPlanCpuTimeAverage-recommendedPlanCpuTimeAverage)/1000000, error_prone = IIF(regressedPlanErrorCount>recommendedPlanErrorCount, 'YES','NO’) FROM sys.dm_db_tuning_recommendations CROSS APPLY OPENJSON (Details, '$.planForceDetails’) WITH ( [query_id] int '$.queryId’, [current plan_id] int '$.regressedPlanId’, [recommended plan_id] int '$.recommendedPlanId’, regressedPlanErrorCount int, recommendedPlanErrorCount int, regressedPlanExecutionCount int, regressedPlanCpuTimeAverage float, recommendedPlanExecutionCount int, recommendedPlanCpuTimeAverage float ) as planForceDetails;
  • 26. Información sobre la ganancia estimada 26 • Estimated_gain representa el número estimado de segundos que se guardarían si el plan recomendado se ejecutaría en lugar del plan actual. • El plan recomendado debe ser forzado en lugar del plan actual si la ganancia es mayor de 10 segundos. • Nota: los datos de este DMV no persisten después de reiniciar la instancia de SQL Server.
  • 27. Ajuste automático en Azure SQL Database 27 • El ajuste automático es un servicio completamente administrado que usa la inteligencia integrada para supervisar continuamente las consultas ejecutadas en una base de datos y mejora automáticamente su rendimiento. • Esto se logra mediante la adaptación dinámica de la base de datos a las cargas de trabajo cambiantes y la aplicación de las recomendaciones de ajuste.
  • 28. Ajuste automático en Azure SQL Database 28 • El ajuste automático aprende horizontalmente a partir de todas las bases de datos de Azure mediante la inteligencia artificial y mejora dinámicamente sus acciones de ajuste. • Cuanto más tiempo se ejecute una base de datos de Azure SQL Database con el ajuste automático activado, mejor rendimiento tendrá.
  • 29. Cómo le puede ayudar el ajuste automático 29 • Ajuste del rendimiento automatizado de bases de datos de Azure SQL Database • Comprobación automática de mejoras de rendimiento • Corrección y reversión automatizadas • Registro del historial de ajustes • Scripts T-SQL de acción de ajuste para implementaciones manuales • Supervisión proactiva del rendimiento de las cargas de trabajo • Funcionalidad de escalabilidad horizontal de cientos de miles de bases de datos • Impacto positivo para los recursos de DevOps y el costo total de propiedad
  • 30. Cómo funciona 30 • El sistema se ha diseñado cuidadosamente para que no interfiera con las cargas de trabajo del usuario. • Las recomendaciones de ajuste automático se aplican solo durante momentos de uso escaso. • El sistema también puede deshabilitar temporalmente las operaciones de ajuste automático para proteger el rendimiento de la carga de trabajo.
  • 32. Opciones de ajuste automático 32 • Las opciones de ajuste automático disponibles en Azure SQL Database son: • CREATE INDEX: identifica los índices que pueden mejorar el rendimiento de la carga de trabajo, crea índices y comprueba automáticamente que el rendimiento de las consultas ha mejorado. • DROP INDEX: identifica los índices duplicados y redundantes, y aquellos que no se han usado durante un período largo de tiempo. • FORCE LAST GOOD PLAN: identifica consultas SQL que usan un plan de ejecución más lento que el plan correcto anterior, y consultas que usan el último plan correcto conocido, en lugar del plan revertido.
  • 33. Uso del ajuste automático 33 • El ajuste automático debe habilitarse manualmente en la suscripción. • Para habilitar el ajuste automático mediante Azure Portal
  • 34. Gestión automática de índices 34 • En Azure SQL Database, la administración de índices es fácil porque Azure SQL Database aprende acerca de su carga de trabajo y asegura que sus datos siempre se indexan de forma óptima. • El diseño correcto del índice es crucial para el funcionamiento óptimo de su carga de trabajo, y la gerencia automática del índice puede ayudarle a optimizar sus índices. • La administración automática de índices puede corregir problemas de desempeño en bases de datos indexadas incorrectamente, o mantener y mejorar índices en el esquema de base ya existente.
  • 35. Gestión automática de índices 35 • El automatic tunning en Azure SQL Database realiza las siguientes acciones: • Identifica los índices que podrían mejorar el rendimiento de las consultas T-SQL que leen los datos de las tablas. • Identifica los índices o índices redundantes que no se utilizaron en un período de tiempo más prolongado que podría eliminarse. La eliminación de índices innecesarios mejora el rendimiento de las consultas que actualizan datos en tablas.