SQL Server de Alto Rendimiento: Estrategia de Índices Clustered y Non-Clustered para Millones de Registros

Elimina cuellos de botella y Table Scans en SQL Server. Guía profunda sobre estadísticas de índices, planes de ejecución y reducción de bloqueos en producción.
1. Estructura de Almacenamiento B-Tree en SQL Server
En SQL Server, las tablas sin índice agrupado se almacenan como montones desordenados (*Heaps*). Al definir un Clustered Index, las páginas de datos físicas de 8 KB se ordenan conforme a la clave seleccionada:
2. Eliminación Radical de Key Lookups con INCLUDE
Un Key Lookup ocurre cuando el motor encuentra las filas en un índice secundario pero debe saltar a la tabla base para recuperar columnas adicionales. El uso de la cláusula INCLUDE crea índices cubrientes (*Covering Indexes*):
-- ==============================================================
-- Optimización: Creación de Índice Non-Clustered con Columnas INCLUDE
-- Evita Key Lookups masivos sobre tablas de millones de transacciones
-- Autor: Ing. Juancito Peña (DataIADev.com)
-- ==============================================================
CREATE NONCLUSTERED INDEX IX_FactVentas_Fecha_Cliente
ON dbo.FactVentas (FechaOrden ASC, ClienteID ASC)
INCLUDE (MontoNeto, ImpuestoTotal, MetodoPagoID)
WITH (
FILLFACTOR = 90,
DATA_COMPRESSION = PAGE,
ONLINE = ON (WAIT_AT_LOW_PRIORITY (MAX_DURATION = 1 MINUTES, ABORT_AFTER_WAIT = SELF))
);Establezca siempre un FILLFACTOR = 90 en tablas con alta tasa de inserción para reservar un 10% de espacio libre en las páginas hoja y evitar la fragmentación prematura (*Page Splits*).
Masterclass en Video en YouTube
¿Te sirvió este tutorial técnico? ☕
Tu aporte voluntario impulsa la creación de nuevos manuales gratuitos, plantillas .PBIX optimizadas y formación de ingeniería para la comunidad.
Compatible con transferencias directas en República Dominicana (BHD, Banreservas, Banco Popular) y PayPal.

Ing. Juancito Peña
Suscribirse a YouTubeArquitecto de Soluciones IA, Business Intelligence & Software Enterprise
Ingeniero de Software y Arquitecto de Datos enfocado en Inteligencia Artificial, Power BI de alta precisión y desarrollo de sistemas empresariales escalables. Director y Fundador de DataIADev.com.
Comentarios & Preguntas Técnicas (2)
Moderación activa
Excelente explicación sobre la transición de contexto y el orden de evaluación en VertiPaq. Me resolvió una discrepancia de cálculo en un modelo financiero.

¡Un gusto Carlos! Recuerda siempre aplicar KEEPFILTERS en ese tipo de filtros cruzados para no sobreescribir el filtro externo del usuario.