Base de Datos a Utilizar en Sistemas Administrativos

Joaquin Jose del Cerro Murciano jjdelcerro en cenoclap.es
Lun Ene 19 08:17:59 CET 2004


Hola,

Supongo, que como todos, hablo por la experiencia que he tenido, con lo que no 
tiene por que ser del todo cierto.
Despues de currar mucho en VB+MSSQL migre a python y ha la hora de hacer 
gestion me encontre con dudas similares. Llevo ya un par de años en python y 
como base de datos tiro de Postgresql. No es que sea la mejor pero en 
entornos Unix es la que mejor me ha ido. No tube que tocar mucho su 
configuracion para que todo me fuese suave. Empeze con MySQL, sobre todo por 
que basicamente andaba sola. Pero por lo menos la version que yo gastaba 
tenia algunas limitaciones que no terminan de gustarme (gustos, no quiero 
entrar en guerras), o pillaba transacciones o pillaba integridad referencial, 
pero las dos juntas no, y ademas tal como venia ni unas ni las otras. No se 
como estan las versiones actuales. Al final pille transacciones.  Cuando 
empeze a meterle caña, al principio fue bien, pero al ganar un poco de 
volumen, empezaron a enlentecerse las inserciones, le costaba cerrar las 
transacciones, pero era una situacion aceptable. Asta que un dia migre unas 
tablas y consultas de MSSQL y mori. Una consulta que en MSSQL era instantanea 
(un par de segundos sobre una tabla de 20.000 registros), paso a tardar casi 
6 minutos. Repase indices, y mire la consulta desde todos los angulos, pero 
no encontre nada. Instale el Postgresql, deje caer las tablas y de nuevo un 
par de segundos. No se que haria mal, o si simplemente la consulta se las 
traia (como nota decir que, la consulta era complicada y que en Access 2000 
tardaba casi 15 minutos). Al final como ya tenia prisa deje el postgresql y 
asi se ha quedado. Tengo unos buenos rendimientos (estoy haciendo 
aplicaciones de gestion con un movimiento algo superior al que comentas), y 
como no algunos problemas. Empece usando pyPgSql, parecia el mas simple. Hace 
algunas cosas raras con las transacciones, por el hecho de habrir un cursor 
con la BD inicia transaccion, aunque sea de lectura, y a veces, ante un error 
de sintaxis en una SQL aborta la transaccion y te jo... fastidias, no hay 
forma de recuperarse y te toca volver a empezar, pero con cuidado te puedes 
apañar. Ademas pierdes siempre un par de segundos para hacer una consulta ya 
que habre una conexion con el server para cada peticion. Dicen que el psycopg 
(creo que se escribe asi) va mejor. Por ultimo sobre el Postgresql no he 
conseguido un GUI de administracion que me acabe de gustar. Dices que la 
ultima version del PGAdminIII esta bien, pero por tema de librerias no la 
puedo arrancar en mi sistema. 
Por ultimo y como dice Chema Cortes, si tienes que rodarla en un Win32 no se 
como te andara el postgresql. Cuando lo probe no era aun un paquete  del 
cygwin, y instalarla era una odisea. Ahora parece que se instala solo, pero 
no se como andara.
Si tienes que rodar en win32 la solucion de Marcos Sanchez puede ser la mas 
sencilla y rapida. Yo lo usaba con VB, y ahora tiro de el esporadicamente 
usando el modulo mssql con rendimientos muy buenos (el modulo parece algo 
muerto pero es facil recompilar y portar, no tiene dependencias 
representativas). Si los servidores son Win32 tirando de MSDE tendras unos 
rendimientos muy buenos, pero ten cuidado con el crecimiento de la base de 
datos, los tablespaces no pueden pasar de 2 Gb, cosa que parece mucho, pero 
yo pete en tres años y me vi obligado a migrar (y cotizar) a un MS SQL 
server. Ademas tienes una limitacion de asta 5 usuarios concurrentes (solo 
por temas de licencias, te deja mas usuarios), aunque este no era problema, 
al final de la jugada la aplicacion se loguea con tra la BD siempre con el 
mismo usuario (no es lo mas sano pero si lo mas comodo).

Ha una tonteria mas, se consciente del volumen de datos que dices vas a 
manejar. Puedes tener un crecimiento anual de mas de 200.000 registros 
anuales (30.000 facturas de cuantas lineas ?). Piensa rapido ahora lo tienes 
en un access y no es nada sano cuando el volumen de registros crece.

Sobre BD, resumiendo, sobre sistemas UNIX te recomiendo Postgresql y sobre 
win32 MSDE.

En cuanto a interface grafica en su momento intente el wxPython, pero era 
demasiado inestable (hoy no lo es), asi que me decidi por Tk. Es duro, muy 
duro, pero no hagas caso a eso que dicen del aspecto. Mis aplicaciones de 
gestion corriendo sobre un Unix me suelen decir que porque tienen ese aspecto 
XP (realmente tienen un aspecto calcado del KDE 3.X) Hoy estoy dedicando unos 
pocos recursos a migrar mi fronend grafico al wx. Mas que nada por tema de 
velocidad. CUando un formulario tiene muchos controles (mi ficha de clientes 
por ejemplo) puede tardar varios segundos en aparecer. Con wx se reduce 
drasticamente el tiempo de carga. Respecto a que el wx hay que instalarlo, 
pues si, apesar de lo cual las aplicaciones me dan 10 veces menos problemas 
que con VB (creo que me he quedado corto).

Por ultimo un comentario mas. Uno de los problemas mas graves que he tenido 
siempre en VB han sido las instalaciones. Asi que en mi migracion a 
Python/Unix eso me preocupo mucho y opte por una solucion salomonica. Solo 
instalo soft en el server y no en los puestos. La aplicaicon rueda en el 
server y tipo de "Terminales X" en los puestosde win32. Para eso uso una 
solucion basada en samba en la que en el server dejo una unidad compartida en 
la que hay instalado un cygwin con sus X. Desde el puesto win32 montan la 
unidad y ruedan un cmd que arranca el servisor X en modo ventana y se conecta 
al server y arranca la aplicacion. Ademas doy acceso por VNC+inetd a la 
aplicacion para puestos donde los recursos sean muy limitados (o el ancho de 
banda pobre).

Bueno, ahi quedan mis andanzas y reflexiones por si te sirven de algo

Un saludo 
Joaquin
El Jueves, 15 de Enero de 2004 19:33, visualnex escribió:
> Hola:
> Estoy analizando que bases de datos usar en aplicaciones administrativas.
> El volumen de datos a manejar es digamos 2500 facturas mensuales, 3000
> clientes y
> 100 recibos diarios. Un sistema de Red en Windows, 6 terminales.
>
> Por ahora y dado que las aplicaciones existentes, estan en Visual Basic 6.0
> sobre windows,
> elegi Access2000 (Base existente actualmente) , python (Por esta lista...)
> y tkinter (Por su poca demanda de recursos) como GUI.
>
> Me convendria cambiar a otro motor de datos una vez migradas las
> aplicaciones? Cual.
> Alguien utiliza posgrest en windows?
> Si alguien esta desarrollando sistemas administrativos, me podria decir que
> Base de datos y GUI utiliza?
>
> Saludos a todos
> Marcelo
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es

-- 
--------------------------------------
Joaquin Jose del Cerro Murciano

jjdelcerro en cenoclap.es




Más información sobre la lista de distribución Python-es