Diferencias de rendimiento al conectar con una base datos

coposdeavena
15 de Junio del 2005
Buenas. Hace poco que he empezado una aplicacion para una pyme. la verdad es que aunque la bd tiene pocas tablas, el numero de clientes que accederan va a ser bastante alto.

El caso es que yo siempre he usado una clase de fabricacion casera que mediante unos parametros de configuracion me permitian interaccionar con la bd de muchas maneras, pero al consultar a un familiar q yeva mucho en este mundillo me ha advertido que es una locura total y que deberia crear clases especificas para cada tabla o, incluso, si fuese posible, tambien para cada seccion del programa ¿¿¿??????

segun me dice q el rendimiento de una y otra forma no tiene comparacion q si tal y cual y q para estas cosas conviene mas hacer muchas clases especificas a mano ((q va a ser bastante costoso la verdad)

Q me podeis decir sobre esto?? tanta diferencia se nota? con pocos clientes? y con muchos? gracias de antemano.

chuidiang
15 de Junio del 2005
Hola:

Desde luego una clase específica para una cosa concreta siempre es más rápida que una clase general configurable. Sin embargo, salvo para aplicaciones muy concretas, no creo que merezca la pena hacer las clases específicas.

Lo primero es ver el número de accesos a base de datos que haces en un caso y en otro. Por ejemplo, si en un caso, para una consulta, lo arreglas con un select y en el otro, para la misma consulta, tienes que hacer 3 select, esta claro que este segundo caso es peor. Si hay muchos clientes, para no cargar la base de datos, es mejor usar los menos accesos posibles.

Si haces el mismo número de accesos, cargas a la base de datos exactamente igual en ambos casos. Si hay un solo cliente o muchos, para base de datos, le da igual una forma que otra. Puede ir lento por exceso de clientes, pero no vas a ganar velocidad haciendo que accedan de una forma o de otra.

Si haces el mismo número de accesos, la diferencia de eficiencia la notara el cliente por lo que tarda su código en ejecutarse (no por la base de datos). Si los accesos a base de datos son de vez en cuando, no se notará diferencia. Si el programa accede mucho y muy deprisa a base de datos (muchas veces por segundo), entonces quizás sí merezca la pena hacerse la clase específica.

Resumiendo. Salvo que el cliente haga muchos accesos muy seguidos, no creo que merezca la pena hacer clases específicas.

Se bueno.

coposdeavena
15 de Junio del 2005
Perdonad que lo reflote pero nadie me puede dar una breve respuesta aunq sea?? gracias de nuevo..