FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Necesito InterBase ???
Hola a todos
Les cuento mi problema. Desarrollé una aplicación en Delphi 5 y base de datos Paradox 7. Son ocho computadoras, todas corren bajo Windows 98. Todos los datos están puestos en una de las computadoras (la que más veces debe acceder). La velocidad de acceso desde las terminales cada vez es más lenta. Tengo tablas de 3000 y 6000 registros mas o menos. Les he preguntado a usuarios de InterBase y me han dicho que para una red domestica, como la que les describo, quizas no presice InterBase (o cliente/servidor), que hasta podria dejarlo igual o empeorar. Si es necesario les puedo describir la complejidad de algunas consultas en otra oportunidad. Me gustaría saber que opinan Uds. Y si opinan que debo cambiar por InterBase, sugieranme como inplementar el cambio. Gracias desde ya. |
#2
|
||||
|
||||
Hola.
A mi me parece que firebird es la base de datos ideal para la carga de trabajo que propones. Es mucho mas estable/confiable que paradox. Con una máquina mas o menos potente haciendo de servidor y una red bien configurada, te podes evitar el hacer viajar todos los datos por la red en el caso de las consultas. También es de esperar que el motor de base de datos genere planes mas óptimos para consultas complejas. A esto añadiré la capacidad de obtener copias de seguridad aún con usuarios conectados a la base de datos y el hecho de poder tener transacciones con un nivel de aislamiento serializable, para consultas e informes largos. Todo esto de cara mas a a la concurrencia y optimización. Con 6000 registros, ningún motor decente debiera tener problemas. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
|||
|
|||
Disculpame que haya demorado en responderte.
Entiendo lo de los 6000 registros porque noto que al intentar cargar por ej. 3 de los 6000 no tiene problemas. El problema está en consultas en las que debo leer del mismo registro más de una ves, y el resultado de la consulta podria estar compuesto de mas de 1000 registros. Lo mismo pasa con una consulta identica pero agrupada con el "Sum" de Sql. Estas consultas tienen en algunos casos 6 o 7 "Left Outer" o "Inner Join". Ademas la repito con pequeñas variantes dentro de la misma consulta usando "Union" entre 8 y 10 veces. Esto hace que al usar la consulta desde una PC remota, si el resultado que se obtiene, es pequeño, tarda poco, si es grande tarda mucho y si es muy grande aparece un error "Insuficiente memoria", error que no aparece si uso esa consulta desde la maquina que tiene los datos. Te pregunto. Al usar "Join", la tabla llamada se carga entera en ram o solo la parte que necesito? Esto sería un problema porque al consultar una tabla grande, ésta llama a otras tan grandes como ella. Otro dato que te doy es que tengo consultas donde el comando "Sum" es usado más de 50 veces y en cada una de sus oportunidades usa 6 o 7 campos de diferentes tablas y algun que otro parámetro. Desde ya te agradesco todo lo que me puedas comentar. Chau |
#4
|
||||
|
||||
Cita:
[quote=Ignacio]Esto hace que al usar la consulta desde una PC remota, si el resultado que se obtiene, es pequeño, tarda poco, si es grande tarda mucho y si es muy grande aparece un error "Insuficiente memoria", error que no aparece si uso esa consulta desde la maquina que tiene los datos.[/sql] esto puede ocurrir porque usando paradox, todos los datos han de viajar al cliente para hacer los joins. Al usar c/s (como firebird, interbase, oracle u otro) este proceso se hace en la memoria del servidor y viajan solamente los datos que devuelva el join. Cita:
Claro que para que el servidor tome buenas decisiones y escoja la mejor ruta para hacer el/los joins, es necesario que declares indices que sean útiles para este propósito. Cita:
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
|||
|
|||
Si algo faltaba para empujarme a cambiar por una base de datos Cliente/Servidor es que están pensando en la necesidad de que los datos sean consultables (y aveces modificables) por los clientes mediante una página web.
Creo que esto me obliga a investigar Oracle (ademas de otras cosas que todavia desconosco). Te preguno . ¿Como qrees que serían los pasos a seguir para introducirme en Oracle? Digo en cuanto libros, licencias y otras cosas que deba saber. Gracias. |
#6
|
||||
|
||||
Cita:
Cita:
Si el presupuesto de tu proyecto es limitado, será mejor que penses en una opción como firebird, que no es tan escalable, pero si tiene muy buen rendimiento y muchas, muchas buenas prestaciones. De cualqueir forma, para inciar con Oracle te recomiendo la lectura de los siguientes hilos (y los vínculos que hay alli): Donde consigo un tutorial de Oracle Primeros pasos en Oracle Además, la busqueda de los foros te arrojará mas información. Sobre las licencias, será mejor que contactes con tu representante local de Oracle (y que estes sentado ) Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|