Usuario
optimizar codigo de query

Pregunta
-
saludos, tengo una query como esta, funciona bien pero tengo 3 subselect y no se como podría hacer para escribirla de algun forma mas optima ,se me ocurre el tema de crear temporales pero estoy trtando de evitar esa opcion
Select Max(dtFechaActualizacion_DetDrv),biNumero_Drv From DetalleDerivacion Where cNumeroGenDoc In ( Select d.cNumeroGenDoc From ( Select COUNT(B.cNumeroGenDoc) As Count_cNumeroGenDoc, A.siCodMun As siCod, b.cNumeroGenDoc,
A.biNumero_Tra From Tramite A Inner Join DetalleDerivacion B On A.siCod=B.siCod And A.cNumeroGenDoc_Tra=B.cNumeroGenDoc And A.TipTra In (23,233,555,78556) Where B.dtFechaRegDoC>DATEADD(day,-25,getdate()) Group by
B.cNumeroGenDoc, A.siCod , A.biNumero_Tra Having COUNT(B.cNumeroGenDoc)>1 )D ) GROUP BY biNumero_Drv
- Editado Augusto C viernes, 15 de septiembre de 2017 23:40
Todas las respuestas
-
Hola Augusto, yo probaría de utilizar INNER JOINS y en segunda opción no veo el problema de utilizar tablas temporales siempre y cuando la cantidad de registros sea extremadamente grande.
Mariano K.
- Propuesto como respuesta Jorge TurradoMVP sábado, 16 de septiembre de 2017 13:26
- Votado como útil Augusto C sábado, 16 de septiembre de 2017 15:27
-
Hola Augusto, yo probaría de utilizar INNER JOINS y en segunda opción no veo el problema de utilizar tablas temporales siempre y cuando la cantidad de registros sea extremadamente grande.
Mariano K.
-
Primero
Tus tablas principales tienen indices?
Tus tablas principales cuantos registros aprox tienen?
Cuantos registros de las en porcentaje muestras osea 10% de mi tabla principal algo asi son datos valiosos para poder usar tablas temporales
Pasa los puntos prro v:
-