Está en la página 1de 13

INDEXACIÓN DE BASE DE DATOS

PROBLEMAS COMUNES
Un query que antes
‘corría’ rápido ahora lo
hace lento

Data import everything va lento

Queries están respondiendo


constantemente con time-outs

Interna-Uso General
2
Información de uso interno que puede ser utilizada por cualquier empleado del Banco de México
7 Indexing tips to improve SQL Server performance

Interna-Uso General
3
Información de uso interno que puede ser utilizada por cualquier empleado del Banco de México
TIP 1
Borrar índices que ya no se utilizan
• Basta una consulta para ver que en una BD pueden haber muchos índices
• El problema es: Hay mas índices de los que realmente se necesitan

• SOLUCIÓN
• BORRAR INDICES QUE NO SE UTILIZAN
• Se puede realizar utilizando el script de la derecha.
• El cual está basado en el DMV (Dynamic Management Views)
Imagen 1. Unused Index Script
Interna-Uso General
4
Información de uso interno que puede ser utilizada por cualquier empleado del Banco de México
TIP 2
Crear índices faltantes
• El problema es: Los índices creados para consultas específicas quedan
obsoletos cuando cambian las consultas subyacentes.
• SOLUCIÓN
• CREAR ÍNDICES

Imagen 2. Missing Index Script


Interna-Uso General
5
Información de uso interno que puede ser utilizada por cualquier empleado del Banco de México
• El problema es: Cuando se necesita un índice los desarrolladores suelen crearlo sin
TIP 3
consultar
Remover
la existencia índices
del mismo o algo similar. duplicados
• SOLUCIÓN
• No hay ninguna razón para tener 2 índices con la misma estructura en la BD.
• Utilizar el script para remover índices duplicados

Imagen 3. Missing Index Script


Interna-Uso General
Imagen 3. Script to Find Redundant Indexes 6
Información de uso interno que puede ser utilizada por cualquier empleado del Banco de México
TIP 4
Importancia de los clustered indexes
• CLUSTERED INDEXES: Define el orden en el cual los datos son físicamente
almacenados en una tabla.
• NOTA: Los datos de las tablas solo pueden ser ordenados de una forma así que solo puede haber UN
CLUSTERED INDEX por tabla

• RECOMENDACIONES
• Columnas que tengan muchos datos únicos son las mejores candidatas para el clustered index
• En SQL Server se crea en automático al crear una PK

Interna-Uso General
7
Información de uso interno que puede ser utilizada por cualquier empleado del Banco de México
TIP 5
Column store
ROW STORE indexes
Almacena filas de datos en una página
para data
COLUMN warehousing
STORE
Almacena todos los datos en una columna
en una página
¿Cuándo utilizar cada store?
*Para almacenar tablas de dimensiones
considerables en data warehousing
applications

*Para realizar análisis de transacciones


real-time se recomienda un nonclustered
column index

Interna-Uso General
8
Información de uso interno que puede ser utilizada por cualquier empleado del Banco de México
TIP 6
SQL Server Cardinality Estimation
• Guía a SQL Server Optimizer Engine para generar mejores planes de
ejecución.

Imagen 4. Cardinality Estimation for a Predicate on a COUNT Expression

Interna-Uso General
9
Información de uso interno que puede ser utilizada por cualquier empleado del Banco de México
TIP 7index
• La PK es la mejor candidata para un clustered
Mejores
• Al crear prácticas
índices de varias columnas,adicionales
suele ser una buenade
ideaindexación
tener las columnas más
selectivas como la primera columna de su índice

Interna-Uso General
10
Información de uso interno que puede ser utilizada por cualquier empleado del Banco de México
RETROALIMENTACIÓN
• DUDAS/COMENTARIOS
• INGRESA AL SIGUIENTE LINK

11
LOSCONCLUSIONES
INDICES DEBEN SER
CUIDADOSAMENTE ANALIZADOS ANTES
DE SER CREADOS

12
REFERENCIAS
Dave, P. (2017a, marzo 4). SQL SERVER – Query to Find Duplicate Indexes – Script to Find Redundant Indexes. SQL Authority with Pinal
Dave. https://blog.sqlauthority.com/2011/07/13/sql-server-query-to-find-duplicate-indexes-script-to-find-redundant-indexes/

Dave, P. (2017b, julio 25). SQL SERVER – Missing Index Script – Download. SQL Authority with Pinal Dave.
https://blog.sqlauthority.com/2011/01/03/sql-server-2008-missing-index-script-download/

Dave, P. (2017c, julio 25). SQL SERVER – Unused Index Script – Download. SQL Authority with Pinal Dave.
https://blog.sqlauthority.com/2011/01/04/sql-server-2008-unused-index-script-download/

IDERA SQL Server Performance.(2022). 7 INDEXING TIPS TO IMPROVE SQL SERVER PERFORMANCE[Whitepaper].PINAL DAVE.
https://www.idera.com/~/media/corporate/whitepapers/IderaWP-7IndexingTipsToImproveSQLServerPerformance.pdf

Interna-Uso General
13
Información de uso interno que puede ser utilizada por cualquier empleado del Banco de México

También podría gustarte