Hola a Todos,
Tengo una duda sobre como optimizar las sentencias qeu demoran mucho, ya sea
por qeu la tabla tenga muchos registro, o le falten indices, o tengan muchos
indices, etc.
mi duda es la siguiente:
Realizo un Select, donde incluya varias tablas digamos 8, y las cuales tenga
que usar los Inner Join (left o rigth), lo cual hay tablas que tienen miles
de registros y otras qeu son solo maestros y tienen pocas(digamos 500 a 1000
aprox) entocnes la consulta se demora unos 5 minutos, pero por otro aldo el
mismo resultado de dicha consulta lo obtengo, cambiando el scrip anterior,
creando tablas temporales, vale decir, uno la 1 y 2 tabla y lo guardo en una
tabla temporal(T1), luego uno la 3 tabla y lo uno con el resultado
anterior(T1) y lo guardo en otra tabla temporal (T2), y asi sucesivamente se
va uniendo estos resultados mediantes Joins, y tratando de unir la tabla con
mas registros con otra de menos registros y asi disminuir los JOINS.
y resulta que lo segundo demoro mucho menos, como 1 minutos.
segun escuche por ahi que sql procesa poco a poco cada sentencias y de ahi
lo uno y eso es mas rapido que usar unsolo select para traer el mismo
resultado.
ahi entra mi duda, si es bueno hacer eso? o no hacerlo? por que? cual es la
mejor practica? se supone que usar tablas temporales es lo menos indicado?
si me pudieran dar su opinion al respecto por favor.
Saludos y gracias a todos.
Emerson
Leer las respuestas