Sentencias lentas en SQL Server 2008.
Una aplicación GeneXus, tenia una sentencia SQL parecida a esta: SELECT T1.[SKMovId], T1.[SKMovFch], T2.[DepositoId], T2.[DepositoTipo], T1.[ProductoId], T1.[SKMovCantidad] FROM ([SKMovimientos] T1 WITH (NOLOCK) INNER JOIN [Depositos] T2 WITH (NOLOCK) ON T2.[DepositoId] = T1.[DepositoId]) WHERE (T1.[SKMovFch] >= @AV6cFechaInicial) AND (T1.[ProductoId] = @AV9cProductoId) AND (T2.[DepositoTipo] = @AV7cDepositoTipo) Hace un join entre dos tablas SKMovimientos que tiene cientos de miles de registros y Depositos que tiene menos de 10 registros . Demoraba 24 segundos y devolvía 17 registros. Extremadamente lenta. Viendo el plan de ejecución de la sentencia pudimos ver que utilizaba un índice incorrecto en la tabla SKMovimientos. Hacer un select en la tabla SKMovimientos sola, sacando la condicion que restringe por DepositoTipo y era instantánea y utilizaba el índice adecuado. Revisando las estadísticas y tenia la creación de estadísticas y su actualización e...