Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

[SOLUCIONADO] Rendimiento de bd chica

Estas en el tema de Rendimiento de bd chica en el foro de PostgreSQL en Foros del Web. Hola, como dije en otro post, estoy iniciandome en SQL y tengo algunas dudas que me gustaría me puedan responder. Mi idea es hacer una ...
  #1 (permalink)  
Antiguo 25/10/2013, 17:05
Avatar de Payaso73  
Fecha de Ingreso: abril-2009
Ubicación: Argentina
Mensajes: 309
Antigüedad: 15 años
Puntos: 20
Rendimiento de bd chica

Hola, como dije en otro post, estoy iniciandome en SQL y tengo algunas dudas que me gustaría me puedan responder.

Mi idea es hacer una base de datos con PostgreSQL la cual estaria en un servidor con tres PC conectadas. Los usuarios (3), se conectarían por medio de un software desarrollado en C++. La bd tendria entre 4 y 5 tablas y las consultas diarias serían pocas (mínimas se podría decir). Imaginense una Agenda.

Mi duda es si estoy eligiendo bien (PostgreSQL) o si estoy desperdiciando potencia. Y además, al ser una base de datos chica pero un motor grande, haría mas lenta la red notablemente? o pasaría desapercibido? que valores/datos tengo que tener en cuenta para calcular esto?
Por que lo que mas dudas me da es el hecho de crear un programa y una base de datos, instalarla en el servidor y despues resulte que relentiza tanto la red que en ves de ser un beneficio sea un malestar.

Espero se entienda.
Gracias.
  #2 (permalink)  
Antiguo 26/10/2013, 10:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Rendimiento de bd chica

Cita:
Mi idea es hacer una base de datos con PostgreSQL la cual estaria en un servidor con tres PC conectadas. Los usuarios (3), se conectarían por medio de un software desarrollado en C++. La bd tendria entre 4 y 5 tablas y las consultas diarias serían pocas (mínimas se podría decir). Imaginense una Agenda.
En ese contexto de desarrollo y requerimientos, cualquier DBMS que uses será demasiado, sea este PostgreSQL, SQL Server, Oracle, MySQL, DB2, e incluso Firebird. Es demasiado pequeño para representar un problema.
Básicamente, tendrás más de qué ocuparte respecto de concurrencia y acceso de red, que los inconvenientes que puedan darte 5 tablas en una base.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 26/10/2013, 10:12
Avatar de Payaso73  
Fecha de Ingreso: abril-2009
Ubicación: Argentina
Mensajes: 309
Antigüedad: 15 años
Puntos: 20
Respuesta: Rendimiento de bd chica

Gracias gnzsoloyo. Y que me recomiendas que haga en este caso? Usar igualmente uno de estos motores o buscar otra solucion? por ejemplo manipular archivos binarios (cosa que al no ser experto en esto, me da cierta inseguridad e inestabilidad).

Gracias por responder. Saludos.
  #4 (permalink)  
Antiguo 26/10/2013, 16:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Rendimiento de bd chica

Si lo que necesitas es manejar datos, no tiene ningún sentido hablar de archivos "binarios" (cosa que sería bueno que expliques a cuáles exactamente te refieres). Es más que evidente que la única forma de administrar concurrencia de datos es con.. bases de datos.
Lo que yo quería que entendieras es que eso que llamas "base" con apenas cuatro o cinco tablas, es tan pero tan pequeño, que no existen un desafío ni problema en ese escenario. En ese contexto puedes usar lo que más te guste y te resulte cómodo.
Básicamente, es un caso sin complejidad ni peso a nivel de desarrollo. Lo que uses te funcionará.
Ahora bien, yo solamente te comento que el único punto que deberás analizar con más cuidado es la concurrencia, para evitarte dolores de cabeza, al conectar más de dos instancias de tu aplicación a una base centralizada. Y si bien el tema de concurrencia se debe manejar con cuidado, cualquiera de los DBMS mencionados te será igual de útil.

En síntesis: Es tu decisión. Puedes usar PostgreSQL u otro, y te resultará el mismo caso.

Si estuviésemos hablando de sistemas realmente elaborados, con estructuras muy complejas, procedimientos almacenados, funciones, seguridad de usuarios, y un enorme etcétera, podríamos necesitar mayor análisis, viabilidad y datos sobre el proyecto. Pero con lo que describes... Casi te diría que lo puedes hacer andar con Access (:P), que no califica como DBMS.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/10/2013, 17:23
Avatar de Payaso73  
Fecha de Ingreso: abril-2009
Ubicación: Argentina
Mensajes: 309
Antigüedad: 15 años
Puntos: 20
Respuesta: Rendimiento de bd chica

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Si lo que necesitas es manejar datos, no tiene ningún sentido hablar de archivos "binarios" (cosa que sería bueno que expliques a cuáles exactamente te refieres). Es más que evidente que la única forma de administrar concurrencia de datos es con.. bases de datos.
Hacia referencia al lenguaje C++, en el cual se pueden manipular archivos binarios y archivos de texto.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Lo que yo quería que entendieras es que eso que llamas "base" con apenas cuatro o cinco tablas, es tan pero tan pequeño, que no existen un desafío ni problema en ese escenario. En ese contexto puedes usar lo que más te guste y te resulte cómodo.
Básicamente, es un caso sin complejidad ni peso a nivel de desarrollo. Lo que uses te funcionará.
Sí, esto lo entiendo, a nivel desarrollo entiendo que no tendría que darme problemas.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Ahora bien, yo solamente te comento que el único punto que deberás analizar con más cuidado es la concurrencia, para evitarte dolores de cabeza, al conectar más de dos instancias de tu aplicación a una base centralizada. Y si bien el tema de concurrencia se debe manejar con cuidado, cualquiera de los DBMS mencionados te será igual de útil.
En síntesis: Es tu decisión. Puedes usar PostgreSQL u otro, y te resultará el mismo caso.
Gracias por el consejo, lo voy a tener en cuenta.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Si estuviésemos hablando de sistemas realmente elaborados, con estructuras muy complejas, procedimientos almacenados, funciones, seguridad de usuarios, y un enorme etcétera, podríamos necesitar mayor análisis, viabilidad y datos sobre el proyecto. Pero con lo que describes... Casi te diría que lo puedes hacer andar con Access (:P), que no califica como DBMS.
Por el momento no estoy interesado en incursionar en Access

Gracias por tu respuesta tan detallada, igualmente mi duda no es a nivel desarrollo ni su complejidad. Tal vez no me exprese bien. Lo que me gustaría saber es si puede disminuir el rendimiento del servidor y la red o si no afecta su rendimiento y velocidad... porque si tengo una base de datos con millones de datos y miles de tablas seguramente tenga que mejorar el hardware y configuración de la red, pero como en mi caso, la base de datos es chica, entonces no tendría problemas con esto, o si?
Cuando a vos un cliente te pide que le hagas una base de datos con X tablas para Y datos le preguntas el hardware que dispone? o esto no es necesario porque los requerimientos son mínimos? Porque estuve buscando información y solo dice "PostgreSQL (o el que sea) requiere tanta memoria ram, tanto espacio en disco y tal procesador", pero no encontré si esto también depende de lo grande que sea el proyecto a realizar...

Espero que se entienda, no se como expresarlo mejor. Y disculpa por hacerlo tan largo.
Saludos.
  #6 (permalink)  
Antiguo 27/10/2013, 18:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Rendimiento de bd chica

Cita:
Tal vez no me exprese bien. Lo que me gustaría saber es si puede disminuir el rendimiento del servidor y la red o si no afecta su rendimiento y velocidad... porque si tengo una base de datos con millones de datos y miles de tablas seguramente tenga que mejorar el hardware y configuración de la red, pero como en mi caso, la base de datos es chica, entonces no tendría problemas con esto, o si?
Bueno, para saber si habrá impacto en la red, habría que estudiar cuál es el nivel de transacciones esperado, cuál el el grado de distribución de las aplicaciones, el uso de las mismas, etc. Es decir que hay que hacer un relevamiento y estimación de cómo se va a usar, en qué escenarios y cómo se modificará a futuro, en función de los planes que la empresa tenga para el negocio.
En esencia, no tiene sentido construir para administrar rascacielos, si la empresa está planeando manejar un hostal de 3 pisos... Pero si el hostal es la fase 1 de un rascacielos... las cosas cambian.
En sistemas, nadie planifica por exceso, a menos que sean planes de más de dos años de aplicación.
Cita:
Cuando a vos un cliente te pide que le hagas una base de datos con X tablas para Y datos le preguntas el hardware que dispone? o esto no es necesario porque los requerimientos son mínimos? Porque estuve buscando información y solo dice "PostgreSQL (o el que sea) requiere tanta memoria ram, tanto espacio en disco y tal procesador", pero no encontré si esto también depende de lo grande que sea el proyecto a realizar...
Si un cliente te plantea "una base con X tablas para Y datos", hay dos opciones: o no sabe de qué está hablando, o no tiene ni idea de lo que necesita su negcio.
El cliente no te puede plantear que quiere una base con especificaciones concretas. Las bases se diseñan sobre la base de las necesidades del negocio, y no por lo que el cliente opine o crea.
Ni siquiera los ingenieros tienen claro lo que requiere una base de datos. Trabajé en un proyecto donde los ingenieros de desarrollo plantearon una base con 5 tablas. Luego de que analizásemos el problema, y lo que se iba a necesitar para proveer datos a los clientes, las cinco tablas se convirtieron en 67, y no exageramos ni un ápice.
Como DBA es tu obligación proveer de los datos a la aplicación, y los programadores no necesitan saber absolutamente nada de cómo está diseñada la estructura, sino que ellos deben proveer de la especificación de datos requeridos. Es uno mismo, como desarrollador de BBDD quien debe ocuparse de ver qué implica ese requerimiento, si se puede solventar con lo que se tiene, o si será mejor modificar alguna estructura para dar mejores y más óptimos resultados.
Una leccion que suelen darte en la universidad los profesores, y que he descubierto como muy cierta es que la lógica de programacion no es igual que la lógica de Bases de DAtos. Son formas completamente distintas de analizar las cosas. Ese salto a los programadores les cuesta, y mucho.
En otras palabras, que el cliente opine lo que quiere. Es TU responsabilidad hacer las cosas bien, aunque no sean exactamente como el cliente supone.
Luego se verá de explicarle al cliente (muy diplomaticamente) que lo que el tiene en mente no cumple con las necesidades de su propio negocio.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 27/10/2013, 20:09
Avatar de Payaso73  
Fecha de Ingreso: abril-2009
Ubicación: Argentina
Mensajes: 309
Antigüedad: 15 años
Puntos: 20
Respuesta: Rendimiento de bd chica

Gracias gnzsoloyo.

Saludos.

Etiquetas: as, bd, postgres, rendimiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:44.