SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
#SQSummit
Una luz dentro del
mundo oculto de las
estadísticas de SQL
Server
Javier Loria
JLoria@solidq.com
/in/JavierSQL
@JavierSQL
Agenda
Que son? y para que se usan?
Creando estadísticas
Leyendo estadísticas
Manteniendo estadísticas
Qué son?
• Objetos que mantienen información sobre
columnas de tablas o vistas
• Selectividad
• Cardinalidad
• Densidad
• Se construyen:
• Automáticamente
• Indirectamente
• Directamente
Conceptos
• Grado en que puede distinguirse un valor del grupo.
• Sexo es menos selectivo que DNI
Selectividad
• Opuesto a Selectividad
• 1.0 / COUNT(DISTINCT <ColumnName>))
Densidad
• Número de Filas que satisface un predicado.
Cardinalidad
Para que sirven las estadísticas?
• Para hacer buenos planes de acceso.
• No son la única fuente de información
• sys.sysindexes: filas (rows) y páginas (dpages)
• Funciones de partición, CHECKs y otros
Demo
Planes y estadísticas
Demo
Conceptos
• Selectividad
• Densidad
• Cardinalidad
Consultas
• Diferentes parámetros:
diferentes planes
• Diferentes estadísticas:
diferentes planes
Estadística
Incorrecta
• Planes Sub-Óptimos
Creación de Estadísticas
• Automáticamente
• CREATE INDEX
• Columna se usa en un Predicado (WHERE o ON)
• BD en Auto_Create y sin Estadísticas
• Individualmente: CREATE STATISTICS
• Granel: SP_CREATESTATS --(IndexOnly)
• Indirectamente:
• Columnas fecha correlacionadas
(DATE_CORRELATION_OPTIMIZATION)
Demo
Creación de estadísticas
Demo
Índices • Asociados con una estadística
Predicados
de
Consultas
• Crean estadísticas, si se usa
AUTO_CREATE
Estadísticas
Incorrectas
• Planes Sub-Óptimos
Recomenda
ción
• SP
Fechas: • DATE_CORRELATION_OPTIMIZATION
Leyendo Estadísticas
STATS_DATE
function
SAMPLE option
o Default (8 Mb) WHERE
Doble Histograma: Rango y valor
Leyendo Estadísticas
Mínimo Siempre
Valor Max
Rango
Núm. Filas
Rango ][
Núm. Filas
= Llave
Valores
Distintos
SELECTIVIDAD
Núm. Filas
Promedio x Valor
(DENSIDAD)
Demo
Leyendo estadísticas
Demo
Resumen de Demo
Estadísticas
• Ayudan a estimar la cardinalidad
• Crean/Mantienen solas (Default)
• Campo para optimización.
DBCC
SHOW…
• Para evaluar la calidad
• Incorrectas? o Desactualizadas?
Estadísticas
• Guía de calidad de un índice.
• Sin respuestas definitivas
Como se aprende
a leer: • LEYENDO!
Mantenimiento de Estadísticas
• Automáticamente
• ALTER INDEX REBUILD
• CREATE INDEX WITH (DROP_EXISTING=ON)
• AUTO_UPDATE
• ALTER INDEX REORGANIZE
• Manualmente
• UPDATE_STATISTICS
• sp_updatestats
Porque importa?
IO: Leen la tabla
CPU: Recompilan los
comandos
Tiempo: Se hacen durante
la consulta (default)
AUTO_UPDATE_STATISTICS
• Caducan
• Tabla en Base de Datos Local:
• 0 a >0
• <=500 y cambios (1ra Fila) >500
• >500 y cambios (1da Fila) >500 + 20% filas originales
• Temporales
• <=6 y cambios (primera fila ) >6
• Variables Tabla: sin estadísticas
Flujo de (Re)Compilación
AUTO_UPDATE_STATISTICS_ASYNC
Actualización Asincrónica
• Sintaxis:
ALTER DATABASE STATDemo
SET AUTO_UPDATE_STATISTICS_ASYNC ON;
• Beneficio:
• Consultas más predecibles
• Menos riesgo de «TimeOut»
• Contras:
• Planes sub-óptimos
• Usar en VLDB
Demo
Actualización de estadísticas
Demo
DML
Up-Del
Ins-Merg
• Cambios en estadísticas
• Cambios en Planes
• Re-compilaciones
SQL 2005+
• Control por columna
• Reduce el impacto del Actualización
Temporales
• Cuidar las re-compilaciones
• Crear y Llenar al Principio
• Tablas grandes no usar variables.
VLDB • Asincrónicas?
Impacto de las Estadísticas
Con
Estadísticas
Sin
Estadísticas
Monitoreando con Profiler
• AutoStats
• stmtCompleted
• SELECT StatMan([SC0]) FROM (SELECT TOP 100
PERCENT <Columna> AS [SC0] FROM <Tabla> WITH
(READUNCOMMITTED) ORDER BY [SC0] ) AS
_MS_UPDSTATS_TBL
Demo
Actualización de estadísticas
Mejores Prácticas
• Mantener BD en:
• AUTO_CREATE_STATISTICS
• AUTO_UPDATE_STATISTICS
• En OLTP:
• 8x5: sp_updatestats (Diario o Semanal)
• 24x7: CREATE STATISTICS en JOBS durante horas de
poco trabajo.
• En DW Relacional:
• Apagar/Prender AUTO_CREATE/UPDATE en ETL.
Mejores Prácticas: Especiales
• Usa Auto-numéricos o Fechas Crecientes:
• Trace Flag: 2389 o 2389/2390.
• Trigger personalizado
• Job de Actualización de estadísticas seleccionadas.
• VLDB
• AUTO_UPDATE_STATISTICS_ASYNC
• Exceso de Re-compilaciones
• Considerar patrones de tablas temporales y opciones
"KEEP PLAN" y "KEEPFIXED PLAN"
• Usar STATISTICS_NORECOMPUTE en tablas específicas y
actualizar periódicamente.
• Evaluar: DATE_CORRELATION_OPTIMIZATION
Resumen
Que son? y para que se usan?
Creando estadísticas
Leyendo estadísticas
Manteniendo estadísticas
Una luz dentro del mundo oculto de
las estadísticas de SQL Server

Weitere ähnliche Inhalte

Ähnlich wie Una luz dentro del mundo oculto de estadísticas SQL Server

Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developersEnrique Catala Bañuls
 
Intensivo Power BI.pdf
Intensivo Power BI.pdfIntensivo Power BI.pdf
Intensivo Power BI.pdfRicardo Rey
 
BI real time analytics
BI real time analyticsBI real time analytics
BI real time analyticsSolidQ
 
Creación de base de datos
Creación de base de datosCreación de base de datos
Creación de base de datosUTN
 
Introducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data WarehouseIntroducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data WarehouseJoseph Lopez
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Julián Castiblanco
 
Top BI Enhancements for Sql Server 2012
Top BI Enhancements for Sql Server 2012Top BI Enhancements for Sql Server 2012
Top BI Enhancements for Sql Server 2012BILATAM
 
In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016Joseph Lopez
 
Módulo I - Obteniendo y transformando datos.pptx
Módulo I - Obteniendo y transformando datos.pptxMódulo I - Obteniendo y transformando datos.pptx
Módulo I - Obteniendo y transformando datos.pptxjohmstone
 
Nuevos escenarios BI con SQL Server 2014
Nuevos escenarios BI con SQL Server 2014Nuevos escenarios BI con SQL Server 2014
Nuevos escenarios BI con SQL Server 2014Ruben Pertusa Lopez
 
Aplicaciones difusas manejo de grandes volúmenes de datos
Aplicaciones difusas manejo de grandes volúmenes de datosAplicaciones difusas manejo de grandes volúmenes de datos
Aplicaciones difusas manejo de grandes volúmenes de datosLuis Fernando Aguas Bucheli
 
Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)SolidQ
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Enrique Catala Bañuls
 
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014SolidQ
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresEnrique Catala Bañuls
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...SpanishPASSVC
 
Novedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalNovedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalEnrique Catala Bañuls
 

Ähnlich wie Una luz dentro del mundo oculto de estadísticas SQL Server (20)

Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developers
 
Intensivo Power BI.pdf
Intensivo Power BI.pdfIntensivo Power BI.pdf
Intensivo Power BI.pdf
 
BI real time analytics
BI real time analyticsBI real time analytics
BI real time analytics
 
Creación de base de datos
Creación de base de datosCreación de base de datos
Creación de base de datos
 
Introducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data WarehouseIntroducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data Warehouse
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
 
Top BI Enhancements for Sql Server 2012
Top BI Enhancements for Sql Server 2012Top BI Enhancements for Sql Server 2012
Top BI Enhancements for Sql Server 2012
 
In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016
 
Módulo I - Obteniendo y transformando datos.pptx
Módulo I - Obteniendo y transformando datos.pptxMódulo I - Obteniendo y transformando datos.pptx
Módulo I - Obteniendo y transformando datos.pptx
 
Nuevos escenarios BI con SQL Server 2014
Nuevos escenarios BI con SQL Server 2014Nuevos escenarios BI con SQL Server 2014
Nuevos escenarios BI con SQL Server 2014
 
Reporting Services
Reporting ServicesReporting Services
Reporting Services
 
Aplicaciones difusas manejo de grandes volúmenes de datos
Aplicaciones difusas manejo de grandes volúmenes de datosAplicaciones difusas manejo de grandes volúmenes de datos
Aplicaciones difusas manejo de grandes volúmenes de datos
 
Inducción
InducciónInducción
Inducción
 
sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
 
Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)
 
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladores
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
 
Novedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalNovedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacional
 

Mehr von 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
 

Mehr von 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...
 

Kürzlich hochgeladen

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
 
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
 
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
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
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
 
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
 
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
 
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
 
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
 
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
 

Kürzlich hochgeladen (10)

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
 
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
 
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
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
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
 
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
 
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
 
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
 
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)
 
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...
 

Una luz dentro del mundo oculto de estadísticas SQL Server

  • 1. #SQSummit Una luz dentro del mundo oculto de las estadísticas de SQL Server Javier Loria JLoria@solidq.com /in/JavierSQL @JavierSQL
  • 2. Agenda Que son? y para que se usan? Creando estadísticas Leyendo estadísticas Manteniendo estadísticas
  • 3. Qué son? • Objetos que mantienen información sobre columnas de tablas o vistas • Selectividad • Cardinalidad • Densidad • Se construyen: • Automáticamente • Indirectamente • Directamente
  • 4. Conceptos • Grado en que puede distinguirse un valor del grupo. • Sexo es menos selectivo que DNI Selectividad • Opuesto a Selectividad • 1.0 / COUNT(DISTINCT <ColumnName>)) Densidad • Número de Filas que satisface un predicado. Cardinalidad
  • 5. Para que sirven las estadísticas? • Para hacer buenos planes de acceso. • No son la única fuente de información • sys.sysindexes: filas (rows) y páginas (dpages) • Funciones de partición, CHECKs y otros
  • 7. Demo Conceptos • Selectividad • Densidad • Cardinalidad Consultas • Diferentes parámetros: diferentes planes • Diferentes estadísticas: diferentes planes Estadística Incorrecta • Planes Sub-Óptimos
  • 8. Creación de Estadísticas • Automáticamente • CREATE INDEX • Columna se usa en un Predicado (WHERE o ON) • BD en Auto_Create y sin Estadísticas • Individualmente: CREATE STATISTICS • Granel: SP_CREATESTATS --(IndexOnly) • Indirectamente: • Columnas fecha correlacionadas (DATE_CORRELATION_OPTIMIZATION)
  • 10. Demo Índices • Asociados con una estadística Predicados de Consultas • Crean estadísticas, si se usa AUTO_CREATE Estadísticas Incorrectas • Planes Sub-Óptimos Recomenda ción • SP Fechas: • DATE_CORRELATION_OPTIMIZATION
  • 13. Leyendo Estadísticas Mínimo Siempre Valor Max Rango Núm. Filas Rango ][ Núm. Filas = Llave Valores Distintos SELECTIVIDAD Núm. Filas Promedio x Valor (DENSIDAD)
  • 15. Demo Resumen de Demo Estadísticas • Ayudan a estimar la cardinalidad • Crean/Mantienen solas (Default) • Campo para optimización. DBCC SHOW… • Para evaluar la calidad • Incorrectas? o Desactualizadas? Estadísticas • Guía de calidad de un índice. • Sin respuestas definitivas Como se aprende a leer: • LEYENDO!
  • 16. Mantenimiento de Estadísticas • Automáticamente • ALTER INDEX REBUILD • CREATE INDEX WITH (DROP_EXISTING=ON) • AUTO_UPDATE • ALTER INDEX REORGANIZE • Manualmente • UPDATE_STATISTICS • sp_updatestats
  • 17. Porque importa? IO: Leen la tabla CPU: Recompilan los comandos Tiempo: Se hacen durante la consulta (default)
  • 18. AUTO_UPDATE_STATISTICS • Caducan • Tabla en Base de Datos Local: • 0 a >0 • <=500 y cambios (1ra Fila) >500 • >500 y cambios (1da Fila) >500 + 20% filas originales • Temporales • <=6 y cambios (primera fila ) >6 • Variables Tabla: sin estadísticas
  • 20. Actualización Asincrónica • Sintaxis: ALTER DATABASE STATDemo SET AUTO_UPDATE_STATISTICS_ASYNC ON; • Beneficio: • Consultas más predecibles • Menos riesgo de «TimeOut» • Contras: • Planes sub-óptimos • Usar en VLDB
  • 22. Demo DML Up-Del Ins-Merg • Cambios en estadísticas • Cambios en Planes • Re-compilaciones SQL 2005+ • Control por columna • Reduce el impacto del Actualización Temporales • Cuidar las re-compilaciones • Crear y Llenar al Principio • Tablas grandes no usar variables. VLDB • Asincrónicas?
  • 23. Impacto de las Estadísticas Con Estadísticas Sin Estadísticas
  • 24. Monitoreando con Profiler • AutoStats • stmtCompleted • SELECT StatMan([SC0]) FROM (SELECT TOP 100 PERCENT <Columna> AS [SC0] FROM <Tabla> WITH (READUNCOMMITTED) ORDER BY [SC0] ) AS _MS_UPDSTATS_TBL
  • 26. Mejores Prácticas • Mantener BD en: • AUTO_CREATE_STATISTICS • AUTO_UPDATE_STATISTICS • En OLTP: • 8x5: sp_updatestats (Diario o Semanal) • 24x7: CREATE STATISTICS en JOBS durante horas de poco trabajo. • En DW Relacional: • Apagar/Prender AUTO_CREATE/UPDATE en ETL.
  • 27. Mejores Prácticas: Especiales • Usa Auto-numéricos o Fechas Crecientes: • Trace Flag: 2389 o 2389/2390. • Trigger personalizado • Job de Actualización de estadísticas seleccionadas. • VLDB • AUTO_UPDATE_STATISTICS_ASYNC • Exceso de Re-compilaciones • Considerar patrones de tablas temporales y opciones "KEEP PLAN" y "KEEPFIXED PLAN" • Usar STATISTICS_NORECOMPUTE en tablas específicas y actualizar periódicamente. • Evaluar: DATE_CORRELATION_OPTIMIZATION
  • 28. Resumen Que son? y para que se usan? Creando estadísticas Leyendo estadísticas Manteniendo estadísticas
  • 29. Una luz dentro del mundo oculto de las estadísticas de SQL Server