Luego de observar estos datos, ejecuté el ITW, que generó la siguiente recomendación de índices:
CREATE NONCLUSTERED INDEX [IXC2000_TRANSAC27] ON [dbo].[TRANSAC] ([NROTRANS] ASC, [FECHA] ASC, [CODCMP] ASC, [NROTRANSELIM] ASC, [CODSUC] ASC, [NROTRANSAUT] ASC, [CODEMP] ASC, [NROTRANSCTRL] ASC )
CREATE NONCLUSTERED INDEX [IXC2000_CMPASOCIADOS28] ON [dbo].[CMPASOCIADOS] ([NROTRANS] ASC, [CODCMP] ASC, [TALONARIO] ASC, [PREFIJOEXT] ASC, [NUMEROEXT] ASC )
El porcentaje de mejora previsto con la aplicación de estos índices fue de 52%.
Una vez aplicados los índices, el plan de ejecución resultante fue:
Mientras que las estadísticas luego de la implementación de los índices fue:
(170259 row(s) affected)
Table ‘CMPASOCIADOS’. Scan count 1, logical reads 2162, physical reads 0, read-ahead reads 0.
Table ‘TRANSAC’. Scan count 1, logical reads 1889, physical reads 0, read-ahead reads 24.
Table ‘TIPOSCMP’. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0.
Table ‘TALONARIOS’. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0.
Como podemos observar la mejora es evidente, hemos pasado de 31004 logical reads a 1889 y 1065 physical reads a 0 solamente en la tabla TRANSAC.
Análisis con Database Tuning Advisor(DTA)
Una vez eliminados los índices anteriores y re-iniciado el servidor, comencé a analizar la misma consulta, comenzando con SQL Server Managment Studio en una ventana de consulta.
El plan de ejecución en este caso resultó el siguiente:
Las estadísticas correspondientes a la ejecución de la consulta fue:
Table ‘TRANSAC’. Scan count 1, logical reads 31004, physical reads 0, read-ahead reads 31008.
Table ‘CMPASOCIADOS’. Scan count 1, logical reads 8482, physical reads 19, read-ahead reads 4482.
Table ‘TIPOSCMP’. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 2.
Table ‘TALONARIOS’. Scan count 1, logical reads 2, physical reads 2, read-ahead reads 0.
(170259 row(s) affected)
Se puede observar que las diferencias entre las estadísticas de la consulta ejecutada sin optimizar son mínimas, lo cual era esperable.