Access - Subconsulta muy lenta.

 
Vista:

Subconsulta muy lenta.

Publicado por Marcos Rodríguez (2 intervenciones) el 22/01/2004 01:07:18
Hola a todos,

Resulta que tengo una base de datos con cuatro tablas a las que llamaré T1, T2, T3 y TA. El caso es que cada una de estas tablas tiene un campo clave de tipo autonumérico, de manera que en las tablas T2 y T3 tengo un campo que coincide con el campo clave de la tabla T1, al que llamaré ID1. Además en las tablas T1, T2 y T3 tengo un campo que coincide con uno de los campos de la tabla TA, al que llamaré IDA.

Pues bien, estoy realizando una subconsulta del estilo siguiente:

SELECT ID1
FROM T1
WHERE ID1 NOT IN (SELECT ID1
FROM T1 INNER JOIN TA ON T1.IDA=TA.IDA);

El caso es que esta consulta la realiza perfectamente y con bastante velocidad, pero si realizo la misma consulta con la tabla T2, la velocidad es lentísima.

La única diferencia que veo es que ID1 es la clave de la tabla T1, pero en la tabla T2 el campo ID1 no es clave, aunque está indexado.

Podría alguien decirme por qué esta segunda consulta es tan lenta.

Muchas gracias de antemano,

Marcos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Subconsulta muy lenta.

Publicado por Rick Hunter (263 intervenciones) el 22/01/2004 21:28:01
Se debe entender que una busqueda por campos llave, es mucho más rápida que una busqueda secuencial, mientras el primero limita solo el universo de la selección, la secuencial recorre toda la tabla en busca de coincidencias. La lentitud de ejecución se puede deber a la cantidad de registros que tengas almacenados en T2, eso influye mucho.

Ojala y te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar