Ver Mensaje Individual
  #4  
Antiguo 09-06-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Hola

Yo no he dicho que sea problema de diseño de la base de datos. He dicho que yo lo consideraria un problema de diseño de la aplicación.

Es perfectamente correcto tener una tabla con cientos de miles o millones de registros. Lo que no me parece correcto es intentar llevar todos estos registros a un cliente.

Supongamos que es la tabla de facturas. Para que querrá un usuario tener 100,000 facturas a la vista (si es que pudiera verlas de alguna forma). Lo que regularmente se hace es pedir al usuario que acote un "rango" de facturas que le interese. Entonces podrias tener solamente las facturas de ayer. Digamos 100. Si normalmente son mas de 300... entonces le pedis que te indique si las de la mañana o las de la tarde.... en fin....

He puesto solo un ejemplo tonto... puede ser que lo que le interese sean las facturas de cierto vendedor... o las que incluyan cierto producto, siempre dentro de un rango de fechas.

La diferencia del porque el locate te funciona mejor con paradox que con IB, en principio, son que PDX al ser una base de datos plana, el BDE puede aprovechar un indice para "acercarse" al registro que busca. En el caso de Interbase, los 100,000 registros tienen que viajar primero al cliente (en primer lugar saturando la red). Luego, aun cuando tengas indices en el servidor, estos no pueden ser aprovechados por la aplicación de esta forma.

En cambio si haces un Select con un predicado que filtre los registros en el servidor los indices si serán aprovechados.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita