Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

24
Descubriendo el corazón de la optimización “Estadísticas más que un concepto Ahias Portillo MVP en Plataforma de Datos DPA SolidQ

Transcript of Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

Page 1: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

Descubriendo el corazón de la optimización “Estadísticas más que un conceptoAhias PortilloMVP en Plataforma de DatosDPA SolidQ

Page 2: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

2

Speaker Bio

Soy un profesional del informática con más de 9 años de experiencia en el desarrollo de soluciones informáticas, actualmente soy un arquitecto de datos para SolidQ, especializado en el uso de herramientas de inteligencia de negocios con tecnologías Microsoft, cuento con dos especialidades enfocadas en base de datos e inteligencia de negocios cursadas en Cenfotec Costa Tica. He participado en proyectos regionales (Centro América) y de América del norte (Estados Unidos).

Soy el fundador de la comunidad de base de datos “El Rincón de Sql Server” y el líder de capitulo oficial de PASS en El Salvador, los cual me ha permitido recibir el nombramiento de MVP en Plataforma de Datos, siendo el único profesional de El Salvador con este reconocimiento.

Page 3: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

3

Agenda

Que son? y para que se usan?

Creando estadísticas

Leyendo estadísticas

Manteniendo estadísticas

Page 4: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

4 4

¿Qué son?

Elemento base que utiliza el optimizador de consulta. Representan la distribución de los datos dentro de una columna o

columnas. Sin estadísticas el motor no puede comparar la eficiencia de los

diferentes planes de ejecución. Sin estadísticas es necesarios escanear

Page 5: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

5 5

¿Qué son?

Pueden ser creadas automáticamente (AUTO_CREATE_STATISTICS) Nos ayuda a determinar:

Selectividad Cardinalidad Densidad

Page 6: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

6

¿Qué son?

• Grado en que puede distinguirse un valor del grupo.• Sexo es menos selectivo que Documento de Identidad

Selectividad

• Opuesto a Selectividad• 1.0 / COUNT(DISTINCT <ColumnName>))

Densidad

• Número de Filas que satisface un predicado.

Cardinalidad

Page 7: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

7 7

¿ Para que se usan?

Page 8: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

8 8

¿ Para que se usan?

Page 9: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

Demo

9

Page 10: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

10 10

Creación de Estadísticas (Índices)

Page 11: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

11 11

Creación de Estadísticas (Automático)

Page 12: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

12 12

Creación de Estadísticas (Manual)

Page 13: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

Demo

13

Page 14: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

14 14

Leyendo estadísticas

DBCC SHOW_STATISTICS('[SqlSat].[Customers]',[PK_Customers])

Page 15: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

15 15

Leyendo estadísticas

DBCC SHOW_STATISTICS('[SqlSat].[Customers]',[PK_Customers])

Page 16: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

Demo

16

Page 17: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

17

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

Page 18: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

18

AUTO_UPDATE_STATISTICS

Caducan Tabla en Base de Datos Local:

0 a >0 <=500 y cambios (1ra Columna) >500 >500 y cambios (1ra Columna) >500 + 20% filas originales

Temporales <=6 y cambios (primera fila ) >6

Variables Tabla: sin estadísticas

Page 19: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

19

Flujo de (Re)Compilación

AUTO_UPDATE_STATISTICS_ASYNC

Page 20: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

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

Page 21: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

Demo

21

Page 22: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

22

Mejores practicas

• Habilitar Auto Create, Actualización Automática• Actualizar estadísticas todas las veces que se generar un índice• Actualizar solo estadísticas de columnas si el índice ha sido

reconstruido• Valida sus estadísticas Estimado vrs Filas Reales

Page 23: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

Questions?

Page 24: Descubriendo el corazón de la optimización “Estadísticas más que un concepto”

Thank You for AttendingFollow @pass24hop

Share your thoughts with hashtags #pass24hop & #sqlpass