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

Post on 11-Apr-2017

260 views 0 download

Transcript of 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

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.

3

Agenda

Que son? y para que se usan?

Creando estadísticas

Leyendo estadísticas

Manteniendo estadísticas

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

5 5

¿Qué son?

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

Selectividad Cardinalidad Densidad

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

7 7

¿ Para que se usan?

8 8

¿ Para que se usan?

Demo

9

10 10

Creación de Estadísticas (Índices)

11 11

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

12 12

Creación de Estadísticas (Manual)

Demo

13

14 14

Leyendo estadísticas

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

15 15

Leyendo estadísticas

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

Demo

16

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

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

19

Flujo de (Re)Compilación

AUTO_UPDATE_STATISTICS_ASYNC

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

Demo

21

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

Questions?

Thank You for AttendingFollow @pass24hop

Share your thoughts with hashtags #pass24hop & #sqlpass