¿ Locate o TQuery ?
Hola:
Para la inmensa mayoria, seguro que esta es una pregunta tonta pero me gustaria saber vuestra opinion segun vuestras experiencias. Tengo una tabla Paradox en red con mas de 500.000 registros ( y creciendo ), actualmente, para localizar un solo registro utilizo el LOCATE (ahora la localizacion se hace eterna). Yo supongo que el locate recorre la tabla por completo registro por registro y comparando. ¿Me recomendais cambiar el locate por un query con su correspondiente sentencia sql?. Yo pienso que seria mas rapido pero esperare vuestras opiniones. Espero vuestras opiniones. Saludos. |
Pues con ese número de registros yo crearía un índice y utilizaría:
Un Saludo. |
pero con esa busqueda accedes al primero que encuentre, tendrias que hacer el indice con todos los campos que quieras que coincidan, no?
|
Como hablas de localizar un registro, entiendo que es clave única, sino lo dicho no tendría sentido pues como comentas solamente localizarías el primero.
Si buscas una coincidencia en la que pueden verse involucrados varios registros y además quieres visualizar los que coinciden en una rejilla, solamente puedes utilizar una Consulta o un filtro. Si quieres contar cuantos registros coinciden con un criterio entonces mejor utiliza una consulta. Un Saludo. |
se trata de lo siguiente:
imaginate una tabla de ciudadanos, con nombre, apellido, direccion, telefono, etc, con 500.000 registros. Segun he entendido al definir el indice, tendria que añadir los campos nombre, apellido, direccion, etc.... y en el findkey supongo que seria tabla.findkey([variable1, variable2, ...., variablex]) Esta busqueda solo se hace para comprobar un determinado valor de un campo booleano (que tambien lo incluiria en el indice y en el findkey), no es para mostrar nada, si cumple esa condicion se hace una cosa y si no la cumple se hace otra. Este metodo del findkey es mas rapido que el locate (ahora mismo esa tabla esta sin indexar)? saludos. |
En el caso del BDE, y de algunos otros motores, locate y findkey son igual de rápidos.
Sacado de la ayuda de delphi: Cita:
|
La franja horaria es GMT +2. Ahora son las 23:16:46. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi