![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#6
|
||||
|
||||
|
Hola.
Los problemas de velocidad en una consulta, practicamente siempre se solucionan creando un/varios índice/s adecuado/s. Cuando tienes una subconsulta (como este caso), tienes que prestar especial atención a crear un índice para optimizar esa subconsulta (puesto que se va a lanzar la subconsulta, una vez para cada registro de la consulta principal). Así para una consulta tipo, la comentada : select nombre from Tabla EXT where (select count(*) from Tabla INT where INT.nombre = EXT.nombre) = 1 Solo creando un índice para el campo nombre, vas a aumentar espectacularmente su tiempo de ejecución. NOTA : Este caso es muy simple, en muchos casos vas a necesitar un índice múltiple para optimizar adecuadamente una consulta. Es decir para optimizar una consulta del tipo select .... where Campo1 = X and Campo2 = Y, debes crear un índice compuesto, con los campos Campo1 y Campo2. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
|
|