Re: [pgsql-es-ayuda] Ayuda con integrity_constraint_violation

2016-06-20 Por tema motum hesa
El 20 de junio de 2016, 11:39, Alvaro Herrera <alvhe...@2ndquadrant.com>
escribió:

> motum hesa escribió:
>
> Hay campos en la excepción que indican la restricción y tabla
> involucradas; mira 40.6.6.1 (tabla 40-1) en
>
> https://www.postgresql.org/docs/9.5/static/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING
> Esto es relativamente nuevo, quizás 9.4.
>
> --
> Álvaro Herrerahttp://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>

Muchas gracias, afortunadamente también están disponibles para PostgreSQL
9.3 (la versión que está instalada). Las voy a probar inmediatamente. Y
regreso con los resultados.

Saludos!


[pgsql-es-ayuda] Ayuda con integrity_constraint_violation

2016-06-20 Por tema motum hesa
Hola lista.

En una de las tablas que hay en la base de datos, existe un trigger AFTER
INSERT con la siguiente estructura:

CREATE OR REPLACE FUNCTION checatabla() RETURNS trigger AS $BODY$
DECLARE

BEGIN
BEGIN

SELECT INTO var1;
SELECT INTO var2;
UPDATE;

IF THEN
INSERT
END IF;

IF THEN
INSERT
END IF;

SELECT INTO ;

IF FOUND THEN

SELECT INTO var4;


IF  THEN
UPDATE;

ELSIF  THEN
UPDATE;
END IF;


ELSE
SELECT INTO var5;

IF  THEN
INSERT;

ELSIF  THEN
INSERT;
END IF;

END IF;


 EXCEPTION
 WHEN integrity_constraint_violation THEN
 RAISE WARNING 'Existe una excepcion';

END;

return NEW;
END;

Esta tabla es modificada por un proceso y recientemente en el log de
postgres sale mucho el mensaje que está en el RAISE WARNING, tengo
entendido que integrity_constraint_violation engloba cualquier error
(violacion de llaves foraneas, checks, uniques, llaves primarias) por lo
que me es difícil saber cual está sucendiendo, es posible saber en qué
tabla y qué error está sucediendo?

Muchas gracias de antemano.

Saludos


[pgsql-es-ayuda] Instalación de Postgis en FreeBSD sobre PostgreSQL 9.5

2016-02-03 Por tema motum hesa
Que tal.

Durante estos días he tratado de instalar PostGIS 2.x en máquinas virtuales
con FreeBSD 9.3/10.2 sobre PostgreSQL 9.5, tratando de instalar PostGIS
2.0.7 / 2.1.7 desde los ports genera el siguiente error:

: recipe for target 'lwgeom_accum.o' failed
gmake[2]: *** [lwgeom_accum.o] Error 1
gmake[2]: Leaving directory
'/usr/ports/databases/postgis20/work/postgis-2.0.7/postgis'
GNUmakefile:14: recipe for target 'all' failed
gmake[1]: *** [all] Error 1
gmake[1]: Leaving directory
'/usr/ports/databases/postgis20/work/postgis-2.0.7'
Makefile:6: recipe for target 'all' failed
gmake: *** [all] Error 2
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** [do-build] Error code 1

Tampoco he tenido suerte tratando de instalar PostGIS 2.2 desde los
fuentes, en dónde genera el siguiente error:

cc: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:103: recipe for target 'shp2pgsql' failed
gmake[2]: *** [shp2pgsql] Error 1
gmake[2]: Leaving directory '/root/postgis-2.2.1/loader'
GNUmakefile:16: recipe for target 'all' failed
gmake[1]: *** [all] Error 1
gmake[1]: Leaving directory '/root/postgis-2.2.1'
*** Error code 2

Stop.
make: stopped in /root/postgis-2.2.1


Desinstalar PostgreSQL 9.5 y regresar a una versión anterior no funciona.
La única forma que funciona la instalación es: Instalando PostgreSQL 9.3 y
después instalando postgis desde los ports (cualquier versión).

Alguno de ustedes se ha encontrado con este problema?.

Gracias de antemano


[pgsql-es-ayuda] Loggear consultas de triggers

2015-08-19 Por tema motum hesa
Buenas tardes.

Actualmente en un servidor estoy teniendo unos problemas pues un Insert
está tardando más de 5 segundos, esta tabla tiene un trigger AFTER INSERT
en este trigger se realizan algunos cálculos y consulta a otra tabla, una
vez realizado los datos que están aquí son insertados a otra tabla, esta
otra tabla a su vez tiene un trigger BEFORE INSERT, este es el trigger más
pesado (más de 2 mil lineas) y realiza consultas, llamadas a funciones y al
final inserta los datos procesados a una tabla histórica.

Desgraciadamente el log de PostgreSQL sólo me dice que el INSERT está
tardando mucho, me gustaría saber qué consultas dentro del trigger están
tardando tanto para poder empezar a optimizarlas,¿es esto posible?. Intente
con log_statement=all pero no me sirivió mucho

Estoy usando PostgreSQL 9.3.8 en FreeBSD 10.1

Muchas gracias de antemano.


Re: [pgsql-es-ayuda] Loggear consultas de triggers

2015-08-19 Por tema motum hesa
Gracias, utilizaré sus consejos.

El 19 de agosto de 2015, 15:26, Gerardo Herzig gher...@fmed.uba.ar
escribió:

 Yo en esos casos de apuro opto por el depurador del hombre pobre:
 Encierro las partes que quiero depurar con

 inicio = clock_timestamp();
 ..
 ..
 [codigo codigo]
 fin = clock_timestamp();

 raise notice 'tiempo de bloque de ejecucion = %', fin - inicio;


 Tambien podrias, claro, guardar los tiempos en una tabla. Supongo que con
 un par de iteraciones lograras encontrar la parte lenta.


 HTH
 Gerardo

 - Mensaje original -
  De: motum hesa mot...@gmail.com
  Para: Lista PostgreSQL pgsql-es-ayuda@postgresql.org
  Enviados: Miércoles, 19 de Agosto 2015 17:14:44
  Asunto: [pgsql-es-ayuda] Loggear consultas de triggers
 
 
  Buenas tardes.
 
 
  Actualmente en un servidor estoy teniendo unos problemas pues un
  Insert está tardando más de 5 segundos, esta tabla tiene un trigger
  AFTER INSERT en este trigger se realizan algunos cálculos y consulta
  a otra tabla, una vez realizado los datos que están aquí son
  insertados a otra tabla, esta otra tabla a su vez tiene un trigger
  BEFORE INSERT, este es el trigger más pesado (más de 2 mil lineas) y
  realiza consultas, llamadas a funciones y al final inserta los datos
  procesados a una tabla histórica.
 
 
  Desgraciadamente el log de PostgreSQL sólo me dice que el INSERT está
  tardando mucho, me gustaría saber qué consultas dentro del trigger
  están tardando tanto para poder empezar a optimizarlas,¿es esto
  posible?. Intente con log_statement=all pero no me sirivió mucho
 
 
  Estoy usando PostgreSQL 9.3.8 en FreeBSD 10.1
 
 
  Muchas gracias de antemano.
 
 
 
 



Re: [pgsql-es-ayuda] Cambiar

2015-06-11 Por tema motum hesa
El 11 de junio de 2015, 10:30, Alvaro Herrera alvhe...@2ndquadrant.com
 escribió:

 motum hesa escribió:

  Para hacer esto he intentado los siguientes comandos de initdb:
 
  /usr/local/etc/rc.d/postgresql initdb -E UTF8
 --xlogdir=/dbe/pgsql/pg_xlog/
  /usr/local/etc/rc.d/postgresql initdb -E UTF8 -X /dbe/pgsql/pg_xlog/

 Luego de eso, pg_xlog en /data debería ser un symlink al directorio
 indicado.  Pero noto que no indicaste que /data es el directorio de
 datos, así que posiblemente puso el nuevo directorio de datos en otra
 parte ...

 A todo esto, espero que no estés tratando de modificar las cosas en una
 instancia que ya contiene datos.  Para esto, puedes

 1. bajar el motor
 2. crear el directorio .../pgxlog
 3. mover los archivos desde pgdata/pg_xlog a .../pgxlog
 4. crear un symlink desde pgdata/pg_xlog a .../pgxlog
 5. iniciar el motor


Hola muchas gracias por la respuesta. Estoy ejecutando esto en un entorno
de pruebas, así que puedo hacer y deshacer sin problema.

La razón por la que no he indicado en dónde debería estar el directorio
/data es porque por mi está bien que se quede en su lugar por default ya
que ahí estará en otro arreglo de discos.

Entonces, si te he entendido bien tendría que hacer lo siguiente:

1. Ejecutar /usr/local/etc/rc.d/postgresql initdb -E UTF8 -X
/dbe/pgsql/pg_xlog/
2. Mover archivos de /data/pg_xlog a /dbe/pgsql/pg_xlog/
3. Crear un symlink ln -s /data/pg_xlog /dbe/pgsql/pg_xlog/
4. Iniciar Postgres

Esto sería lo correcto?

Muchas gracias!


Re: [pgsql-es-ayuda] servidores postgresql 9.4

2015-06-11 Por tema motum hesa
El 11 de junio de 2015, 11:27, Luis Felipe Aguilar Pereda 
luchitodesig...@gmail.com escribió:

 Estimados, alguien sabe si hay servidores que den este servicio online,
 gratis o de paga?.


 gracias por los datos.



 --
 Aguilar Pereda Luis
 Claro: 952226115



Hola.

EnterpriseDB tiene este servicio: http://www.enterprisedb.com/Cloud

Saludos


Re: [pgsql-es-ayuda] Cambiar

2015-06-11 Por tema motum hesa

 Ah, ahora entiendo el problema.  En vez de ejecutar initdb, estás
 invocando la función initdb del script de inicio de FreeBSD.  Es muy
 posible que ese código no conozca sobre el switch -X y por eso no
 funciona.  Una solución sería ejecutar initdb directamente en vez de
 usar el script, supongo, pero sólo después de hacer un reporte de bug al
 package de FreeBSD para que soporte la opción -X.


Hola.

Gracias por indicarme lo del script initdb. He visto el script y
simplemente tenía que poner esto en el rc.conf:

postgresql_initdb_flags=--encoding=utf-8
--xlogdir=/database/pgsql/pg_xlog/

Ejecutar el comando /usr/local/etc/rc.d/postgresql initdb

Y listo! Se ha solucionado todo.

Muchas gracias!


[pgsql-es-ayuda] Cambiar

2015-06-11 Por tema motum hesa
Hola a todos.


Tengo un servidor usando FreeBSD 10.1 en el que he instalado PostgreSQL 9.3
desde los ports. He leído que para mejorar un poco el rendimiento es buena
idea tener el directorio pg_xlog en un arreglo de discos separado.

Para hacer esto he intentado los siguientes comandos de initdb:

/usr/local/etc/rc.d/postgresql initdb -E UTF8 --xlogdir=/dbe/pgsql/pg_xlog/
/usr/local/etc/rc.d/postgresql initdb -E UTF8 -X /dbe/pgsql/pg_xlog/

Sin embargo, al verificar dentro de la carpeta /data de PostgreSQL existe
todavía el directorio pg_xlog y también contiene archivos mientras que el
directorio especial que he creado /dbe/pgsql/pg_xlog/ está vacío, al crear
base de datos de pruebas sigue sin usar el directorio que yo he asignado.

Me podrían indicar si estoy haciendo algo mal?.

Muchas graciasy saludos


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Error 08003 en ejecución local

2014-05-12 Por tema motum hesa
Hola Jaime Soler, si tengo contemplada esa excepcion por la cual ya no
puedo recuperar la conexion por la que termino matando el proceso para que
intente nuevamente en una nueva ejecucion. Ahi a lo mejor no es lo
correcto, pero por el momento es lo que me esta funcionando. Gracias por el
comentario y si tienes alguna idea mas es bienvenida. Saludos

Motum


El 12 de mayo de 2014, 7:17, jaime soler jaime.so...@gmail.com escribió:

 El vie, 02-05-2014 a las 19:46 -0500, motum hesa escribió:
  Hola revise lo del SELINUX, no lo tiene mi sistema operativo, creo que
  en FREEBSD se llama de otra forma pero la verdad no tengo idea si esta
  activado, ya hable con la persona que se encarga de los servidores
  para que lo cheque.
 
 
  En cuanto a las opciones de logs_connections y log_disconnections al
  activarlas puedo ver lo siguiente:
 
 
  [unknown]: 2014-05-02 23:55:08 UTC : pgsql@[local] web :LOG:
  connection authorized: user=pgsql database=web
  [unknown]: 2014-05-02 23:55:08 UTC : pgsql@[local] web :LOG:
  disconnection: session time: 0:00:00.096 user=pgsql database=web
  host=[local]
 
 
  Esto se repite muchas veces algunos tiempos llegan a algunos segundos
  pero, como pueden ver hay conexiones que no duran ni un segundo, no
  entiendo esto pero tratare de investigar mas con la información que me
  arrojo el log. Muchas gracias por la ayuda. Saludos
 

 ¿Y en la aplicación tienes la pila de excepciones cuando da el error
 08003 ?


 
 
 
 
 
  El 2 de mayo de 2014, 14:42, Jaime Casanova ja...@2ndquadrant.com
  escribió:
  2014-05-02 13:52 GMT-05:00 motum hesa mot...@gmail.com:
   Gracias por la recomendación Cesar, justamente así se hace
   normalmente, sin
   embargo este es el tercer conjunto de servidores que se
  instala y por
   cuestiones monetarias comenzamos con el programa de JAVA en
  el mismo server
   hasta que sea adecuado contratar el segundo.
  
   Jaime te mando la información relevante del archivo
  pg_hba.conf:
  
   local   all all
  trust
   # IPv4 local connections:
   hostall all 127.0.0.1/32
   trust
   hostall all 198.xxx.xxx.xxx/32
  trust
   hostall all xxx.xxx.xx.xxx/32
  trust
   hostall slony   xxx.xx.xxx.xx/32
   md5
  
   la cadena de conexión es para la base de datos de lectura
  es:
  
   jdbc:postgresql://+server+:5432/comm,pgsql, 
  
   las cadenas de conexión para la base de datos de insercción
  es:
 property
  
  name=connection.driver_classorg.postgresql.Driver/property
   property
  
  name=connection.urljdbc:postgresql://127.0.0.1/web/property
   property
  name=connection.usernamepgsql/property
   property
  name=connection.password/property
   property name=connection.port5432/property
  
 
 
  Es decir que el problema es usando la ip 127.0.0.1, eso no es
  conexión
  local en el sentido que pg_hba.conf lo entiende...
  en todo caso, aun así no puede ser problema de red. sin mas
  pistas voy
  a lanzar una piedra al aire y esperar a atinarle a algo... haz
  apagado
  selinux? sino lo has hecho hazlo y veamos si tienes el mismo
  problema.
 
  otra forma de buscar: activa log_connections y
  log_disconnections
 
  --
  Jaime Casanova www.2ndQuadrant.com
  Professional PostgreSQL: Soporte 24x7 y capacitación
  Phone: +593 4 5107566 Cell: +593 987171157
 
 
 





[pgsql-es-ayuda] Error 08003 en ejecución local

2014-05-02 Por tema motum hesa
Hola a todos, tengo un problema con un pequeño programa en JAVA que hace
insercciones a una tabla con Hibernate, ya trate de descartar cualquier
problema con estas tecnologias y solo me queda alguna configuración de
postgres, este es el error:

WARNING: SQL Error: 0, SQLState: 08003


Por alguna razón solo se da de forma local, ya lo intente de forma remota y
funciona correctamente de hecho lo he dejado por horas sin ningun problema,
pero cuando lo pongo de forma local corre un par de minutos (haciendo
algunas insercciones) y despues manda dicho error.

Cabe mencionar que en otro servidor tengo la misma configuracion de todo
y funciona perfectamente.

Esta es la información del servidor:

Version stringPostgreSQL 9.2.8 on amd64-portbld-freebsd9.1, compiled by
cc (GCC) 4.2.1 20070831 patched [FreeBSD], 64-bit

Saludos y espero sus comentarios... gracias


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Error 08003 en ejecución local

2014-05-02 Por tema motum hesa
Muchas gracias por la información Jaime, de hecho deduzco por eso que, por
alguna razon el vinculo de conexión entre mi programa y postgres desaparece
o lo cierra, por que de primera instancia si existe debido a que si logra
realizar varios inserts, y lo que no entiendo es por que de manera remota
no da este error y de manera local es casi inmediato.  Te agradecere si
tienes mas información acerca de este error, para tratar de ver si alguna
configuración o algo pueda solucionarlo. Saludos




El 2 de mayo de 2014, 12:44, Jaime Casanova ja...@2ndquadrant.comescribió:

 2014-05-02 11:51 GMT-05:00 motum hesa mot...@gmail.com:
  Hola a todos, tengo un problema con un pequeño programa en JAVA que hace
  insercciones a una tabla con Hibernate, ya trate de descartar cualquier
  problema con estas tecnologias y solo me queda alguna configuración de
  postgres, este es el error:
 
  WARNING: SQL Error: 0, SQLState: 08003
 
 

 Según http://www.postgresql.org/docs/9.3/static/errcodes-appendix.html
 el código de estado SQL 08003 es connection_does_not_exist

 --
 Jaime Casanova www.2ndQuadrant.com
 Professional PostgreSQL: Soporte 24x7 y capacitación
 Phone: +593 4 5107566 Cell: +593 987171157



[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Error 08003 en ejecución local

2014-05-02 Por tema motum hesa
Gracias por la recomendación Cesar, justamente así se hace  normalmente,
sin embargo este es el tercer conjunto de servidores que se instala y por
cuestiones monetarias comenzamos con el programa de JAVA en el mismo server
hasta que sea adecuado contratar el segundo.

Jaime te mando la información relevante del archivo pg_hba.conf:

local   all all trust
# IPv4 local connections:
hostall all 127.0.0.1/32trust
hostall all 198.xxx.xxx.xxx/32 trust
hostall all xxx.xxx.xx.xxx/32   trust
hostall slony   xxx.xx.xxx.xx/32md5

la cadena de conexión es para la base de datos de lectura es:

jdbc:postgresql://+server+:5432/comm,pgsql, 

las cadenas de conexión para la base de datos de insercción es:
  property
name=connection.driver_classorg.postgresql.Driver/property
property name=connection.urljdbc:postgresql://127.0.0.1/web
/property
property name=connection.usernamepgsql/property
property name=connection.password/property
property name=connection.port5432/property

En el log de postgres no veo nada extraño.

Eso es todo lo que tengo, muchas gracias por la ayuda.

Motum

P.D. Disculpen que les cambie las ips, es por seguridad.


El 2 de mayo de 2014, 13:00, Jaime Casanova ja...@2ndquadrant.comescribió:

 2014-05-02 12:53 GMT-05:00 motum hesa mot...@gmail.com:
  Muchas gracias por la información Jaime, de hecho deduzco por eso que,
 por
  alguna razon el vinculo de conexión entre mi programa y postgres
 desaparece
  o lo cierra, por que de primera instancia si existe debido a que si logra
  realizar varios inserts, y lo que no entiendo es por que de manera
 remota no
  da este error y de manera local es casi inmediato.  Te agradecere si
 tienes
  mas información acerca de este error, para tratar de ver si alguna
  configuración o algo pueda solucionarlo. Saludos
 

 Podrías mostrar la cadena de conexión? el archivo pg_hba.conf y si es
 que hay algún mensaje relevante en el log de postgresql?




 --
 Jaime Casanova www.2ndQuadrant.com
 Professional PostgreSQL: Soporte 24x7 y capacitación
 Phone: +593 4 5107566 Cell: +593 987171157



[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Error 08003 en ejecución local

2014-05-02 Por tema motum hesa
Hola revise lo del SELINUX, no lo tiene mi sistema operativo, creo que en
FREEBSD se llama de otra forma pero la verdad no tengo idea si esta
activado, ya hable con la persona que se encarga de los servidores para que
lo cheque.

En cuanto a las opciones de logs_connections y log_disconnections al
activarlas puedo ver lo siguiente:

[unknown]: 2014-05-02 23:55:08 UTC : pgsql@[local] web :LOG:  connection
authorized: user=pgsql database=web
[unknown]: 2014-05-02 23:55:08 UTC : pgsql@[local] web :LOG:
disconnection: session time: 0:00:00.096 user=pgsql database=web
host=[local]

Esto se repite muchas veces algunos tiempos llegan a algunos segundos pero,
como pueden ver hay conexiones que no duran ni un segundo, no entiendo esto
pero tratare de investigar mas con la información que me arrojo el log.
Muchas gracias por la ayuda. Saludos





El 2 de mayo de 2014, 14:42, Jaime Casanova ja...@2ndquadrant.comescribió:

 2014-05-02 13:52 GMT-05:00 motum hesa mot...@gmail.com:
  Gracias por la recomendación Cesar, justamente así se hace  normalmente,
 sin
  embargo este es el tercer conjunto de servidores que se instala y por
  cuestiones monetarias comenzamos con el programa de JAVA en el mismo
 server
  hasta que sea adecuado contratar el segundo.
 
  Jaime te mando la información relevante del archivo pg_hba.conf:
 
  local   all all trust
  # IPv4 local connections:
  hostall all 127.0.0.1/32trust
  hostall all 198.xxx.xxx.xxx/32 trust
  hostall all xxx.xxx.xx.xxx/32   trust
  hostall slony   xxx.xx.xxx.xx/32md5
 
  la cadena de conexión es para la base de datos de lectura es:
 
  jdbc:postgresql://+server+:5432/comm,pgsql, 
 
  las cadenas de conexión para la base de datos de insercción es:
property
  name=connection.driver_classorg.postgresql.Driver/property
  property
  name=connection.urljdbc:postgresql://127.0.0.1/web/property
  property name=connection.usernamepgsql/property
  property name=connection.password/property
  property name=connection.port5432/property
 

 Es decir que el problema es usando la ip 127.0.0.1, eso no es conexión
 local en el sentido que pg_hba.conf lo entiende...
 en todo caso, aun así no puede ser problema de red. sin mas pistas voy
 a lanzar una piedra al aire y esperar a atinarle a algo... haz apagado
 selinux? sino lo has hecho hazlo y veamos si tienes el mismo problema.

 otra forma de buscar: activa log_connections y log_disconnections

 --
 Jaime Casanova www.2ndQuadrant.com
 Professional PostgreSQL: Soporte 24x7 y capacitación
 Phone: +593 4 5107566 Cell: +593 987171157



Re: [pgsql-es-ayuda] Redondear enteros para arriba

2014-01-08 Por tema motum hesa
Con la función que propone felipe, solo sumale 4.9 a tu dato y debe
funcionar:

Select round(valor::numeric + 4.9, -1)
El ene 8, 2014 5:07 p.m., Felipe Hernández pip...@gmail.com escribió:

  select round(valor::numeric,-1);

 casi perfecto, pero 191 se redondearia a 190.


 El 8 de enero de 2014, 18:01, Ivan Garro ivanga...@gmail.com escribió:

 Hola Equipo, tengo el siguiente problema:
 necesito redondear valores numericos (enteros o no) a la siguiente
 decena, siempre para arriba.
 por ejemplo necesito que me de el siguiente resultado:

 valorresultado esperado
 195  200
 199  200
 199.25 200
 191  200
 189  190
 190  190

 se entiende?
 he buscado pero no doy con ninguna funcion

 desde ja Muchas Gracias

 Ivan


 -
 Enviado a la lista de correo pgsql-es-ayuda (
 pgsql-es-ayuda@postgresql.org)
 Para cambiar tu suscripción:
 http://www.postgresql.org/mailpref/pgsql-es-ayuda




 --
 fElIpE



Re: [pgsql-es-ayuda] warning en el log

2013-07-05 Por tema motum hesa
Hola, mira si vienes de una version anterior y funcionaba es posible que el
parametro bytea_output no sea igual a '*escape*' como lo era en versiones
anteriores. Lo otro que se me ocurre es que cheques el siguiente link:

http://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.1#Backward_compatibility_issues

ahi podrias encontrar otro parametro de configuracion que te esta efectando.


Saludos y espero que esto te ayude...


Roberto Campos


El 5 de julio de 2013 19:15, Guillermo E. Villanueva guillermo...@gmail.com
 escribió:

 Amigos estoy leyendo el tema pero la verdad que me cuesta entenderlo del
 todo.
 Mis neuronas se están avegentando rapidísimo. :-(
 Tengo un sistema web php accediendo a un postgres 9.0
 El log de este postgres esta llenísimo del siguiente warning:

 ..
 ..
 2013-07-05 20:53:12 ART HINT:  Use la sintaxis de escape para cadenas, por
 ej. E'\r\n'.
 2013-07-05 20:53:16 ART WARNING:  uso no estandar de escape en un literal
 de cadena en car.cter 128
 2013-07-05 20:53:16 ART HINT:  Use la sintaxis de escape para cadenas, por
 ej. E'\r\n'.
 2013-07-05 20:53:34 ART WARNING:  uso no estandar de escape en un literal
 de cadena en car.cter 132
 2013-07-05 20:53:34 ART HINT:  Use la sintaxis de escape para cadenas, por
 ej. E'\r\n'.
 2013-07-05 20:53:36 ART WARNING:  uso no estandar de escape en un literal
 de cadena en car.cter 128
 2013-07-05 20:53:36 ART HINT:  Use la sintaxis de escape para cadenas, por
 ej. E'\r\n'.
 2013-07-05 20:53:36 ART WARNING:  uso no estandar de escape en un literal
 de cadena en car.cter 128
 2013-07-05 20:53:36 ART HINT:  Use la sintaxis de escape para cadenas, por
 ej. E'\r\n'.
 2013-07-05 20:53:38 ART WARNING:  uso no estandar de escape en un literal
 de cadena en car.cter 132
 2013-07-05 20:53:38 ART HINT:  Use la sintaxis de escape para cadenas, por
 ej. E'\r\n'.
 2013-07-05 20:53:38 ART WARNING:  uso no estandar de escape en un literal
 de cadena en car.cter 132
 2013-07-05 20:53:38 ART HINT:  Use la sintaxis de escape para cadenas, por
 ej. E'\r\n'.
 2013-07-05 20:53:38 ART WARNING:  uso no estandar de escape en un literal
 de cadena en car.cter 132
 2013-07-05 20:53:38 ART HINT:  Use la sintaxis de escape para cadenas, por
 ej. E'\r\n'.
 2013-07-05 20:54:20 ART WARNING:  uso no estandar de escape en un literal
 de cadena en car.cter 128
 2013-07-05 20:54:20 ART HINT:  Use la sintaxis de escape para cadenas, por
 ej. E'\r\n'.
 2013-07-05 20:54:21 ART WARNING:  uso no estandar de escape en un literal
 de cadena en car.cter 132
 2013-07-05 20:54:21 ART HINT:  Use la sintaxis de escape para cadenas, por
 ej. E'\r\n'.
 2013-07-05 20:56:40 ART WARNING:  uso no estandar de escape en un literal
 de cadena en car.cter 136
 2013-07-05 20:56:40 ART HINT:  Use la sintaxis de escape para cadenas, por
 ej. E'\r\n'.
 ..
 ..

 Me pueden orientar en como hacer que postgres me oriente un poquito mas en
 que query  encuentra el problema? Es posible? Sino, no se a que porción de
 código ir a corregir.

 En versión 9.1 directamente el sistema no funciona y casi seguro que es
 por esto.

 Desde ya muchas gracias por la ayuda que me puedan brindar

 Muy buen fin de semana

 Guillermo Villanueva




Re: [pgsql-es-ayuda] Substring en bytea

2012-05-21 Por tema motum hesa
Checa cómo saca los datos java por que si lo hace cómo hex por cada byte
te devuelve 2 caracteres hexadecimales y por eso ves el doble de datos.

Roberto campos

El may 21, 2012 12:13 p.m., Ivan Perales M. ivan.pera...@gmail.com
escribió:

Hola lista buen día, acudo a ustedes por la siguiente cuestión.

Estoy trabajando con java, en una columna de tipo bytea inserto los datos
binarios de archivos adjuntos, se que no es Lo mejor pero por el momento es
Lo que tenemos. En está columna voy agregando la información con algo como
data = data ¦¦ :newdata. Esto funciona bien ya que al hacer un length me
devuelve los bytes del tamaño del archivo.

Pero cuando trato de obtener la información con un substring, supongamos de
100 kb, substring(data from 1 for 102400) en postgres me devuelve los 100
kb exactos, pero en java obtengo un array como de 199 kb y esto pues ya es
erróneo.

Tendrá algo que ver que la bd este en utf? O sí no, conocen alguna
herramienta para leer de forma exadecimal el valor de un byeta y comparar
contra Lo que obtengo en java?

Saludos y de antemano gracias

Solo existen 10 tipos de personas en el mundo, las que saben binario y las
que no.


Re: [pgsql-es-ayuda] Consulta anidada con valores nulos

2012-03-05 Por tema motum hesa
hola según veo la diferencia en la consulta es que no estas filtrando por
sector al final de la segunda columna. Saludos

El mar 5, 2012 9:16 a.m., Alvaro Hilario king...@gmail.com escribió:

Tengo una consulta de la siguiente manera:
Nota: Fijarse en la ultima linea de los resultados.

select codigo_anomalia as anomalia, sum(medidores)
from lecturas_sap_bi
where to_char(fecha, '-MM') = '2012-02'
and sector = 'Puerto Plata'
group by codigo_anomalia
order by codigo_anomalia

La cual me trae por resultado:

AN34;707
AN35;905
AN36;3639
AN37;531
AN38;2471
AN39;1518
;45910

Y la anido de la siguiente manera:

select distinct a.codigo_anomalia as anomalia,
(select sum(medidores)
from lecturas_sap_bi as b
where to_char(b.fecha, '-MM') = '2012-02'
and b.sector = 'Puerto Plata'
and b.codigo_anomalia = a.codigo_anomalia) as pp
from lecturas_sap_bi as a
where to_char(a.fecha, '-MM') = '2012-02'
group by a.codigo_anomalia
order by a.codigo_anomalia

Y el resultado es:

AN34;707
AN35;905
AN36;3639
AN37;531
AN38;2471
AN39;1518
AN41;
;

Alguien me puede orientar porque razón ocurre esto.
-- 
Al_Hilario Company


Re: [pgsql-es-ayuda] Problemas con PostgreSQL 9.1.2

2011-12-26 Por tema motum hesa
Hola antes que nada gracias por tu respuesta en cunato a lo que preguntas:

 Que s.o. usas en la 9.1.2? No digas que has pasado de un Unix a Windows por
 favor.


Uso FreeBSD 8.2 64bits en todos los servidores  (en el anterior tenia
8.1 pero no hay problema con eso por que un servidor de pruebas lo
tengo con 8.2 y postgres 8.4 y funciona bien).

 Has tuneado el sistema aumentando el numero de semaforos, memoria
 compartida, descriptores de ficheros, el sistema de archivos y demas?


Si he aumetado el numero de semafors, memoria compartida, descriptores
de ficheros ( no lo habia hecho pero ya realizado sigue igual). En
cuanto al sistema de archivos la unica modificacion fue en el fstab
agregar noatime, no se que mas puedo modificar.

 Supongo que postgres si lo has tuneado acorde con la nueva maquina.


Si, ya hice el tuning de postgres lo mejor posible por ahi movi mas
datos para ayudarme a mi proceso ( como enable_seqscan=off,
constraint_exclusion = on, bytea_output='escape' y statement_timeout=5
min).. pero tambien los cambie en maquina de pruebas y no afecta,

 Como hiciste el paso de los datos de 8.4 a 9.1, con pg_dumpall o pg_upgrade?
 Si usaste pg_upgrade, has tenido en cuenta que hay tipos de datos que no
 puede manejar correctamente y has leido el log/registro?

al principio use pg_upgrate, pero como comentas dio problemas con unos
datos, despues lo hice un pg_dump pero use el del 8.4 y tambien dio un
par de problemas.. y el que funciono bien fue hacer el respaldo de 8.4
con el cliente de 9.1

 Uno de los pasos
 que puede fallar y lo anuncia solo con un warning es el reindex, en especial
 si hay involucrados tipos de datos que no puede manejar.


Hice el reindex pero ningun error aparecio.. todo normal


 Conforme usas los triggers en 9.1 mejoran los tiempos de ejecucion o son
 practicamente iguales que al principio? Si mejora es normal, si son iguales,
 mira que se esten usando los indices de forma correcta, que los planes de
 ejecucion no esten haciendo cosas raras.


La mayoria de los triggers mejoraron un poco, pero no se si fue 9.1 o
el aumento de caracteristicas en el servidor, yo creo k los planes de
ejecucion estan haciendo cosas raras principalmente en la consulta que
te comente..  mi idea era depurar la funcion haciendo linea por
linea.. pero no se si es posible..

 Ya como ultima opcion, reindexa la bd y analiza.


Reindexada y analizada.. todo sigue igual :(





Saludos y gracias por tus ideas...


Roberto Campos
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Problemas con PostgreSQL 9.1.2

2011-12-23 Por tema motum hesa
Hola Jaime, disculpa la tardanza.. ando corriendo haciendo pruebas y
mas.. en cuanto a tus preguntas:

puedes mostrar el trigger?
esta muy grande ( tal vez tambien sea por ahi el problema ), te
explico y si lo requieres con gusto te lo adjunto en un archivo

 dejarnos ver algo que nos de una idea de
que podria ser?cuando dices que se queda trabado y que el statement_timeout 
lo mata,
quiza las consultas dentro del trigger estan muy lentas?


Segun lo que encontre es un select con un limit 1... normalmente y en
el psql esta consulta tarda 100ms exageradamente pero dentro de
plpgsql tarda mas de 5 min, te paso el log:

ERROR:  canceling statement due to statement timeout
2011-12-23 03:20:58 UTC : pgsql@216.24.251.210 motumweb :CONTEXT:  SQL
statement select point_geom, fechacreacion,
importacionid, odometrototal from datosentrada_his where viajeactivo =
p_viajesis and entrandosaliendo=1  order by importacionid limit 1

aqui la consideracion mas importante es que la tabla
datosentrada_his es una tabla con unas 50 columnas ( se que debo
normalizarla, pero me esta costando trabajo por todo lo ya
desarrollado) la cual tiene unos 80 millones de registros, debido a
eso se particiono, y como los datos se ingresan cada seg aprox.
entonces particione por semana donde obtengo particiones de 2.5
millones de registros por particion ( me gustaria saber si es
demasiado cada semana segun tu opinion), ahorita tengo unas 18
particiones, 15 llenas, la actual y 2 mas para las proximas semanas.
Creo que por aqui el planeador de consultas de postgresql 9.1 esta
haciendo algo raro con respecto al 8.4; ya intente meter en la
consulta la fecha dentro del where pero no ayudo ( esto debido a que
mi particion la hago por fechas) , estoy buscando a ver si despues de
que se termina cada parcition puedo agregar algun check para que
tambien tome encuentra otras columnas que uso para busqueda de
informacion como el importacionid que lo ves en la consulta y el
viajeactivo  tambien mostrado en la consulta del log. Por desgracia
no puedo hacer estos check antes por que no se en que numeros
empezaran dentro de cada particion y tampoco en cuales terminaran.

Otra consideración es que tengo un trigger de 2500 lineas... no se
ejecutan todas cada vez.. esta partido en 4 dependiendo de como llegue
la información es lo que se va  hacer.. estoy trabajando en conjunto
con los programadores para eliminar lineas de este trigger que pueden
afectar el desempeño.. pero por el momento solo pegan en cierto casos
espcificos que casi no suceden.


 has ejecutado
VACUUM ANALYZE?

Si en este servidor recien desplege el respaldo se hizo un vacuum
analyze, despues de checar algunas pruebas hice otro... y normalmente
en produccion tengo un cron que hace todas las noches el vacuum
analyze.



Tienen por casualidad tus tablas columnas INET con indices asociados?

Rafael
en cuanto a tu pregunta no tengo ninguna columa INET.. si tienes
alguna otra idea es bien recibida. Gracias



Bueno gracias a todos y espero puedan darme mas ideas de donde buscar. Saluds


Roberto Campos
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Problemas con PostgreSQL 9.1.2

2011-12-22 Por tema motum hesa
Hola, quiero pensar que nadie ha leído mi post o tal vez nadie tiene
un problema así y solo es un caso de mal diseño, por lo que pido a
alguien si tiene algún link, post o documento que me pueda compartir
para checar mis funciones, casi siempre se atoran en SELECT  a tablas
particionadas, cosa que no pasaba en 8.4.4. Espero puedan ayudarme con
alguna lectura. Ahora bien recuerdo que cuando se anuncio postgresql 9
entre las nuevas características según leí iba a traer una forma de
ejecutar línea a línea funciones o procedimientos almacenados... si no
es así corríjanme, de lo contrario igual un manual o un link me
serviría mucho.. Gracias. y saludos..



El día 20 de diciembre de 2011 17:56, motum hesa mot...@gmail.com escribió:
 Que tal.

 Actualmente tenemos 2 servidores de producción (con diferentes
 características), 1 con PostgreSQL 8.4.4 y otro con PostgreSQL 9.1.2,
 estamos intentando migrar al 9.1.2 ya que donde se encuentra es un
 servidor más potente, tenemos una aplicación en JAVA que hace INSERTS
 a una tabla en especial, esta tabla tiene triggers que hace
 operaciones a otras tablas (SELECTS, UPDATES, INSERTS), y es aquí
 donde nos encontramos con los problemas ya que cuando el trigger
 quiere realizar alguna de estas operaciones se quedan trabadas (se
 mueren gracias al statement_timeout que está a 5 minutos en ambos
 servidores), eso solo pasa en 9.1.2 ya que la misma aplicación está en
 el otro servidor funcionando sin ningún problema.

 Alguna idea del porqué PostgreSQL 9.1.2 se está comportando de esa manera?

 Gracias de antemano.
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] Problemas con PostgreSQL 9.1.2

2011-12-20 Por tema motum hesa
Que tal.

Actualmente tenemos 2 servidores de producción (con diferentes
características), 1 con PostgreSQL 8.4.4 y otro con PostgreSQL 9.1.2,
estamos intentando migrar al 9.1.2 ya que donde se encuentra es un
servidor más potente, tenemos una aplicación en JAVA que hace INSERTS
a una tabla en especial, esta tabla tiene triggers que hace
operaciones a otras tablas (SELECTS, UPDATES, INSERTS), y es aquí
donde nos encontramos con los problemas ya que cuando el trigger
quiere realizar alguna de estas operaciones se quedan trabadas (se
mueren gracias al statement_timeout que está a 5 minutos en ambos
servidores), eso solo pasa en 9.1.2 ya que la misma aplicación está en
el otro servidor funcionando sin ningún problema.

Alguna idea del porqué PostgreSQL 9.1.2 se está comportando de esa manera?

Gracias de antemano.
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] In Memoriam: Falleció Dennis Ritchie

2011-10-14 Por tema motum hesa
 ++;

El oct 14, 2011 4:03 p.m., Marcos Luis Ortiz Valmaseda 
marcosluis2...@googlemail.com escribió:



El 14 de octubre de 2011 15:30, Espartano espartano.m...@gmail.comescribió:

  Aquí un link de Rob Pike con algunos pensamientos de los grandiosos 
legados de Dennis Ritchie...

++

-- 
Marcos Luis Ortíz Valmaseda
 Linux Infrastructure Engineer
 Linux User # 418229
 http://marcosluis2186.posterous.com
 http://www.linkedin.com/in/marcosluis2186
 Twitter: @marcosluis2186


Fwd: [pgsql-es-ayuda] Problema uso de indices...

2011-09-02 Por tema motum hesa
Pues muchas gracias a todos y principalmente a Alvaro,  La solución a
esta cuestión es crear indices multicolumna donde sean necesarios.
Espero le sirva a alguien esto. Saludos.

Roberto Campos
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Problema uso de indices...

2011-09-01 Por tema motum hesa

 Uh, después de mirarlo otra vez, es obvio que hace lo mismo porque en el
 plan no hay ningún seqscan, sino un indexscan.  Prueba poniendo
 enable_indexscan TO off.  Esto debería hacer que empiece a usar el
 bitmapscan que es el plan rápido.


Definitivamente uso ahora un bitmapscan  y aunque mejoro un poco la
velocidad, no fue tanto como quisiera, pero bueno ya es ganancia. Creo
que tendre que quedarme con la opcion de crear indices aunque sean
repetidos.

Ahora bien.. me conviene dejar por default el enable_indexscan y el
enable_seqscan en off desde el postgresql.conf  para optimizar en
general mis consultas?

 --
 Álvaro Herrera alvhe...@alvh.no-ip.org


No he podido probar los parametros del Planner Cost, tratare de
hacerlo el fin de semana ya que no tenga tantos clientes conectados.
Saludos y gracias por su ayuda nuevamente

Roberto Campos
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Problema uso de indices...

2011-08-31 Por tema motum hesa
 Hm, raro. Muestra el \d de la tabla otra vez por favor, en ambos
 servidores.  Muestra también el resultado de


Server 1

Table public.datosentrada_his
   Column|Type | Modifiers
-+-+---
 fechaentrada| timestamp without time zone |
 lat | double precision|
 lng | double precision|
 direccion   | character varying   |
 entrandosaliendo| integer |
 odometrototal   | double precision|
 hrastotalmotor  | double precision|
 hrastotalpto| double precision|
 hrastotalralenti| double precision|
 combustotalralenti  | double precision|
 combustotalpto  | double precision|
 bateria | double precision|
 altitud | double precision|
 factorcarga | double precision|
 torque  | double precision|
 conexiontrailer1| integer |
 conexiontrailer2| integer |
 refpunto| integer |
 refciudad   | integer |
 unitno  | character varying(15)   | not null
 flota   | character varying(40)   | not null
 importacionid   | bigint  | not null
 viajeactivo | integer |
 cro | integer |
 ignicion| boolean |
 pia | integer |
 fechaenvio  | timestamp without time zone |
 fechacreacion   | timestamp without time zone |
 point_geom  | geometry|
 point_geomutm   | geometry|
 combustibletotal| double precision|
 dkilometros | double precision|
 dhoraspto   | double precision|
 dhorasmotor | double precision|
 dcombustible| double precision|
 velpromedio | double precision|
 dhorasralenti   | double precision| default 0
 nalarmas| smallint| default 0
 nfallas | smallint| default 0
 nmensajes   | smallint| default 0
 tempmotor   | double precision|
 tempaceite  | double precision|
 presionturbo| double precision|
 presionaceite   | double precision|
 rpm | integer |
 tiempo_optimas_rpm  | double precision| default 0
 tiempo_retarder | double precision| default 0
 dcombustibleralenti | double precision|
 dcombustiblepto | double precision|
 dtiempo_optimas_rpm | double precision|
 dtiempo_retarder| double precision|
 mrefp   | double precision|
 mrefc   | double precision|
 pendientes  | smallint|
 pos_gps | boolean |
 minrpm  | integer |
 engrane_transmision | integer |
 vel_max | double precision|
 compre_break_dis| double precision|
 cont_apli_fren  | integer |
 cont_ace_brusca | integer |
 cont_desac_brusca   | integer |
 total_eng_cruise| double precision|
 odom_virtual| double precision|
 num_sate| integer |
 vel_gps | integer |
 edobatt | smallint|
Indexes:
datosentrada_his_pk PRIMARY KEY, btree (importacionid)
fki_importacionid_his btree (importacionid)
fki_vehiculo_his btree (unitno, flota)
fki_viajeactivo_his btree (viajeactivo)
ind_fecha btree (fechacreacion)
inf_fecha_id_his btree (fechacreacion, importacionid)
Check constraints:
enforce_dims_point_geom CHECK (ndims(point_geom) = 2)
enforce_dims_point_geomutm CHECK (ndims(point_geomutm) = 2)
enforce_geotype_point_geom CHECK (geometrytype(point_geom) =
'POINT'::text OR point_geom IS NULL)
enforce_geotype_point_geomutm CHECK (geometrytype(point_geomutm)
= 'POINT'::text OR point_geomutm IS NULL)
enforce_srid_point_geom CHECK (srid(point_geom) = 4326)
enforce_srid_point_geomutm CHECK (srid(point_geomutm) = 32614)
Foreign-key constraints:
historico_vehiculo FOREIGN KEY (unitno, flota) REFERENCES
vehiculos(unitno, flota) ON UPDATE CASCADE
Triggers:
pdatosentrada_his_trig BEFORE INSERT ON datosentrada_his FOR EACH
ROW EXECUTE PROCEDURE pdatosentrada_his_func()



Server 2


   

[pgsql-es-ayuda] Problema uso de indices...

2011-08-30 Por tema motum hesa
Hola disculpen la molestia nuevamente, he estado tratando de optimizar
una consulta que ya habia optimizado pero el cliente me aviso que
estaba tardando demasiado, lo raro de el caso es que la misma base de
datos la respalde y la desplegue un par de semanas atras en un
servidor de pruebas, donde se estan insertando los mismos registros
diariamente, en el servidor de produccion ( server 1) la consulta
tarda mas de 170 segundos en realizarse mientras en el servidor de
pruebas ( server 2) tarda 2 o 3 segundos... hice un explain analyze en
la consulta y despues de revizarla me doy cuenta que por alguna razon
en el server 1 el indice que tengo sobre un timestamp no se esta
usando, hice un backup del esquema y lo compare con el de server 1 y
la estructura es la misma ( solo habia una funcion nueva en el server
2 pero no es relevante para la consulta). Hice otra prueba para ver si
es por la configuracion de hardware donde server 1 esta como sigue:

2 Xeon a 2 Ghz
6Gb RAM
150 GB SATA a 10Krpm X 4  Disco duro en RAID 10
Freebsd 8.1
Postgres 8.4.4

el server 2 esta como sigue:

1 Xeon a 2 Ghz
8 GB RAM
300 GB a 7.2K rpm Disco duro sin RAID
Freebsd 8.1
Postgres 8.4.4

Y los dos servidores de postgres han sido tuneados para usar los
recursos del sistema. Entre las posibles opciones se penso que un
disco del Arrglo RAID 10 pudiera estar fallando o tal vez se requiere
mas memoria para la consulta ( La tabla tiene mas de 30M de
registros), por lo que en un servidor que tengo para otras
aplicaciones mas simples tengo un postgres y lo use para hacer un
respaldo del  server 1 y del server 2 y los desplege en este server 3:

Xeon 2 GHz
2 GB RAm
150 GB x 2 a 7.2K rmp en RAID 1
Freebsd 8
Postgres 8.4.2

Donde el resultado es el mismo bdserver1 180segundos la consulta y
dbserver2 5 segundo la consulta. Ya Recree el indice que me hace falta
que se use, hice vacuum, vacuum analyze, reindex y nada no se mas
puedo hacer, espero puedan ayudarme, la consulta es la siguiente:

SELECT DE.unitno,DE.entrandosaliendo,DE.fechacreacion,
   DE.lat,DE.lng,DE.odometrototal,
DE.odometrototal as copodo,DE.combustibletotal,
TE.nombre,TE.img,
  TE.ops,EA.valor,EF.descripcion,
EF.fault_codes,EF.tipo,EM.descripcion as desmssg,
  DE.pos_gps
  FROM   (select * from datosentrada_his where unitno='111' and
flota='EMPRESA1' and fechacreacion between '07/13/2011 05:00' and
'07/15/2011 04:59' ) AS DE
   LEFT JOIN entradafallas   AS EF  USING(importacionid)
LEFT JOIN entradaalarma   AS EA  USING(importacionid)
   LEFT JOIN entradamensajes AS EM  USING(importacionid)
   LEFT JOIN tipoevento  AS TE  ON EA.tipo = TE.tipo ORDER BY
DE.fechacreacion ASC

Si es necesario les puedo enviar el resultado de los explain analyze
que realice.. Espero puedan ayudarme... ya que he leido todo lo que he
encontrado y nada. mi principal duda es por que en una db si se usa el
indice y en la otra no...



Roberto Campos
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Problema uso de indices...

2011-08-30 Por tema motum hesa
Este es el resultado del explain analyze en el server 1:


  QUERY PLAN
-
 Sort  (cost=1718.18..1718.21 rows=57 width=519) (actual
time=175459.691..175463.798 rows=2865 loops=1)
   Sort Key: public.datosentrada_his.fechacreacion
   Sort Method:  quicksort  Memory: 446kB
   -  Hash Left Join  (cost=16.76..1717.85 rows=57 width=519) (actual
time=81664.931..175446.958 rows=2865 loops=1)
 Hash Cond: (public.datosentrada_his.importacionid = em.importacionid)
 -  Nested Loop Left Join  (cost=0.00..1700.63 rows=11
width=495) (actual time=81664.848..175435.842 rows=2865 loops=1)
   -  Nested Loop Left Join  (cost=0.00..1660.14 rows=5
width=254) (actual time=81618.484..175341.231 rows=2865 loops=1)
 Join Filter: (ea.tipo = te.tipo)
 -  Nested Loop Left Join  (cost=0.00..1654.23
rows=5 width=76) (actual time=81605.823..175048.216 rows=2865 loops=1)
   -  Append  (cost=0.00..1621.58 rows=4
width=58) (actual time=81551.393..174852.044 rows=2865 loops=1)
 -  Index Scan using fki_vehiculo_his
on datosentrada_his  (cost=0.00..1621.58 rows=4 width=58) (actual
time=81551.387..174843.074 rows=2865 loops=1)
   Index Cond: (((unitno)::text =
'142'::text) AND ((flota)::text = 'Transportes Bueno'::text))
   Filter: ((fechacreacion =
'2011-07-13 05:00:00'::timestamp without time zone) AND (fechacreacion
= '2011-07-15 04:59:00'::timestamp without time zone))
   -  Index Scan using ea_importacionid on
entradaalarma ea  (cost=0.00..8.16 rows=1 width=26) (actual
time=0.063..0.063 rows=0 loops=2865)
 Index Cond:
(public.datosentrada_his.importacionid = ea.importacionid)
 -  Seq Scan on tipoevento te  (cost=0.00..1.08
rows=28 width=186) (actual time=0.008..0.050 rows=28 loops=2865)
   -  Index Scan using imid on entradafallas ef
(cost=0.00..8.09 rows=2 width=249) (actual time=0.028..0.028 rows=0
loops=2865)
 Index Cond:
(public.datosentrada_his.importacionid = ef.importacionid)
 -  Hash  (cost=13.12..13.12 rows=1040 width=40) (actual
time=0.006..0.006 rows=0 loops=1)
   -  Seq Scan on entradamensajes em  (cost=0.00..13.12
rows=1040 width=40) (actual time=0.002..0.002 rows=0 loops=1)
 Total runtime: 175468.194 ms
(21 rows)



y Este es el del server 2


 QUERY
PLAN
--
 Sort  (cost=4650.54..4650.64 rows=190 width=519) (actual
time=5074.391..5078.896 rows=2865 loops=1)
   Sort Key: public.datosentrada_his.fechacreacion
   Sort Method:  quicksort  Memory: 446kB
   -  Hash Left Join  (cost=4347.73..4649.11 rows=190 width=519)
(actual time=922.145..5062.929 rows=2865 loops=1)
 Hash Cond: (public.datosentrada_his.importacionid = em.importacionid)
 -  Nested Loop Left Join  (cost=4330.97..4630.83 rows=36
width=495) (actual time=922.101..5052.662 rows=2865 loops=1)
   -  Hash Left Join  (cost=4330.97..4501.28 rows=16
width=254) (actual time=877.626..4979.360 rows=2865 loops=1)
 Hash Cond: (ea.tipo = te.tipo)
 -  Nested Loop Left Join  (cost=4329.79..4500.04
rows=16 width=76) (actual time=877.411..4968.538 rows=2865 loops=1)
   -  Append  (cost=4329.79..4385.75 rows=14
width=58) (actual time=828.176..4757.065 rows=2865 loops=1)
 -  Bitmap Heap Scan on
datosentrada_his  (cost=4329.79..4385.75 rows=14 width=58) (actual
time=828.171..4748.222 rows=2865 loops=1)
   Recheck Cond: (((unitno)::text
= '142'::text) AND ((flota)::text = 'Transportes Bueno'::text) AND
(fechacreacion = '2011-07-13 05:00:00'::timestamp without time zone)
AND (fechacreacion = '2011-07-15 04:59:00'::timestamp without time
zone))
   -  BitmapAnd
(cost=4329.79..4329.79 rows=14 width=0) (actual time=802.119..802.119
rows=0 loops=1)
 -  Bitmap Index Scan on
fki_vehiculo_his  (cost=0.00..31.70 rows=1496 width=0) (actual
time=390.128..390.128 rows=224090 loops=1)
   Index Cond:
(((unitno)::text = '142'::text) AND ((flota)::text = 'Transportes
Bueno'::text))
 -  Bitmap Index Scan on
ind_fecha  

Re: [pgsql-es-ayuda] Problema uso de indices...

2011-08-30 Por tema motum hesa
Aqui esta solo el explain analyze de la seccion que comentaba alvaro,
que justamente donde esta el problema:

Server1

# explain analyze select * from datosentrada_his where unitno='142'
and flota='Transportes Bueno' and fechacreacion between '07/13/2011
05:00' and '07/15/2011 04:59';

QUERY PLAN
-
 Result  (cost=0.00..697.42 rows=2 width=600) (actual
time=80569.005..173377.349 rows=2865 loops=1)
   -  Append  (cost=0.00..697.42 rows=2 width=600) (actual
time=80568.997..173364.737 rows=2865 loops=1)
 -  Index Scan using fki_vehiculo_his on datosentrada_his
(cost=0.00..697.42 rows=2 width=600) (actual
time=80568.991..173356.094 rows=2865 loops=1)
   Index Cond: (((unitno)::text = '142'::text) AND
((flota)::text = 'Transportes Bueno'::text))
   Filter: ((fechacreacion = '2011-07-13
05:00:00'::timestamp without time zone) AND (fechacreacion =
'2011-07-15 04:59:00'::timestamp without time zone))
 Total runtime: 173381.978 ms
(6 rows)

server2

# explain analyze select * from datosentrada_his where unitno='142'
and flota='Transportes Bueno' and fechacreacion between '07/13/2011
05:00' and '07/15/2011 04:59';

 QUERY PLAN
--
 Result  (cost=4329.79..4385.75 rows=14 width=600) (actual
time=918.279..4858.531 rows=2865 loops=1)
   -  Append  (cost=4329.79..4385.75 rows=14 width=600) (actual
time=918.268..4844.345 rows=2865 loops=1)
 -  Bitmap Heap Scan on datosentrada_his
(cost=4329.79..4385.75 rows=14 width=600) (actual
time=918.264..4835.848 rows=2865 loops=1)
   Recheck Cond: (((unitno)::text = '142'::text) AND
((flota)::text = 'Transportes Bueno'::text) AND (fechacreacion =
'2011-07-13 05:00:00'::timestamp without time zone) AND (fechacreacion
= '2011-07-15 04:59:00'::timestamp without time zone))
   -  BitmapAnd  (cost=4329.79..4329.79 rows=14 width=0)
(actual time=889.621..889.621 rows=0 loops=1)
 -  Bitmap Index Scan on fki_vehiculo_his
(cost=0.00..31.70 rows=1496 width=0) (actual time=364.576..364.576
rows=224090 loops=1)
   Index Cond: (((unitno)::text = '142'::text)
AND ((flota)::text = 'Transportes Bueno'::text))
 -  Bitmap Index Scan on ind_fecha
(cost=0.00..4298.04 rows=331110 width=0) (actual time=490.006..490.006
rows=334068 loops=1)
   Index Cond: ((fechacreacion = '2011-07-13
05:00:00'::timestamp without time zone) AND (fechacreacion =
'2011-07-15 04:59:00'::timestamp without time zone))
 Total runtime: 4863.894 ms
(10 rows)


Saludos

Roberto Campos
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Problema uso de indices...

2011-08-30 Por tema motum hesa
 ¿Qué pasa si le das un SET enable_seqscan TO off en el server 1?
Ya habia hecho pruebas con el parametro enable_seqscan y ni asi me
tomo en cuenta el indice, sigue haciendo lo mismo



Ahora lo que paso recientemente es que el dia de hoy el server2 dejo
de usar el indice al igual que el server 1.. y cuando hice pruebas en
el explain analyze vi esto entre parentesis  (never executed) al final
de la lines del indice, no se a que se deba esto. El explain fue el
siguiente:

 explain analyze select * from datosentrada_his where   fechacreacion
between '07/12/2011 05:00' and '07/13/2011 04:59' and (flota='hesa'
and unitno='9014');

   QUERY PLAN
--
 Result  (cost=4932.34..5988.53 rows=265 width=600) (actual
time=27.099..27.099 rows=0 loops=1)
   -  Append  (cost=4932.34..5988.53 rows=265 width=600) (actual
time=27.095..27.095 rows=0 loops=1)
 -  Bitmap Heap Scan on datosentrada_his
(cost=4932.34..5988.53 rows=265 width=600) (actual time=27.093..27.093
rows=0 loops=1)
   Recheck Cond: (((unitno)::text = '9014'::text) AND
((flota)::text = 'hesa'::text) AND (fechacreacion = '2011-07-12
05:00:00'::timestamp without time zone) AND (fechacreacion =
'2011-07-13 04:59:00'::timestamp without time zone))
   -  BitmapAnd  (cost=4932.34..4932.34 rows=265 width=0)
(actual time=27.089..27.089 rows=0 loops=1)
 -  Bitmap Index Scan on fki_vehiculo_his
(cost=0.00..1403.11 rows=54548 width=0) (actual time=27.086..27.086
rows=0 loops=1)
   Index Cond: (((unitno)::text =
'9014'::text) AND ((flota)::text = 'hesa'::text))
 -  Bitmap Index Scan on ind_fecha
(cost=0.00..3528.85 rows=168081 width=0) (never executed)
   Index Cond: ((fechacreacion = '2011-07-12
05:00:00'::timestamp without time zone) AND (fechacreacion =
'2011-07-13 04:59:00'::timestamp without time zone))
 Total runtime: 27.214 ms
(10 rows)


 Debería cambiar al segundo plan.  Si es así, creo que lo que deberías
 hacer es

 1. incrementar effective_cache_size
 2. incrementar cpu_tuple_cost y/o cpu_operator_cost


El effective_cache_size lo tengo a 3/4 de mi memoria ram no se si sea
recomendable aumentarlo mas. Los otros 2 parametros no los he movido
hare pruebas a ver que pasa.


Entre mis pruebas hice un indice con los 3 campos involucrados en la
consulta y aunque postgres deberia tomar el indice1 donde estan los 2
primeros campos y el indice2 donde esta la fecha. Al crear este nuevo
indice ya esta funcionando mejor la consulta pero creo que ya son
demasiados indices sobre una tabla.. y los 2 primeros indices si se
estan usando espero no me afecte el desempeño tanto indice, ustedes
que creen?. Saludos y muchas gracias por sus comentarios y ayuda.

Roberto Campos



 --
 Álvaro Herrera alvhe...@alvh.no-ip.org

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Ayuda Consulta de fechas

2011-07-27 Por tema motum hesa
El 27/07/11, Alvaro Herrera alvhe...@alvh.no-ip.org escribió:
 Excerpts from motum hesa's message of mar jul 26 19:36:37 -0400 2011:


 Ojo que si usas mucho el campo fecha por separado y buscas por rangos de
 fechas, puede que no te resulte bueno eliminar ese índice.  La razón es
 que un índice de múltiples columnas es más pesado que uno de una sola
 columna (obvio).  Me ha tocado ver casos en los que existían ambos
 índices (uno con la columna sola y otro con dos columnas), se borró el
 de la columna sola, y resultó que era tan utilizado antes de borrarse
 que el sistema se puso mucho más lento.

 Así que te sugiero que si vas a hacer esto, le pongas atención al
 sistema para ver si es verdad que mejora al borrar el índice.

Borre el indice he hice pruebas, si se usaba ese indice asi que lo
tuve que crear otra vez, aunque con eso me di cuenta que el otro
indice que incluia la fecha al parecer no me sirve, lo elimine y no vi
cambios hasta el momento. De todas maneras seguire checando por
cualquier cosa.



 Hmm.  Honestamente suena a que el campo debería eliminarse
 completamente :-)  Quizás esta propiedad debería almacenarse en otra
 tabla, si es que realmente es necesario almacenarla.

 A todo esto, a veces cuando tienes campos que tienen muchos valores
 nulos, te puede convenir crear un índice de esta forma:

 create index fff on tutabla (viajeactivo) WHERE viajeactivo IS NOT NULL;

 Haciéndolo así ahorras espacio en el índice y no pierdes ninguna
 funcionalidad (a menos que hagas búsquedas WHERE viajeactivo IS NULL).


La columna viajeactivo es una referencia a otra tabla, lo por lo que
me di cuenta que me hace falta una llave foranea ahi, ya lo platique
con los programadores ya que esto les pega y en la primera oportunidad
lo hago.

Como son demasiados registros tarda mucho cambiar las columnas pero ya
estoy agregando la propiedad NOT NULL a la mayoria de los campos.
Aunque parece que voy a tardar un buen rato.


 Sí, mi hipótesis es que eso debería ayudar en el group by.

No ayudo el indice que me dijiste para el Group  by.


 Lo que te puedo decir es que el optimizador sabe convertir MIN() y MAX()
 en un indexscan con LIMIT 1 internamente, pero estos trucos sólo se
 pueden aplicar en situaciones limitadas.  [leyendo código]  En
 particular, por lo que veo en el código, no se pueden aplicar cuando
 tienes GROUP BY ... así que olvida lo que dije de ese índice, porque es
 obvio que no te va a servir.

 Puedes mirar el código fuente (con bastantes comentarios que explican lo
 que puede y lo que no puede hacer) acá:


Leyendo el codigo entendi todo lo que me decias y pues cambie la
consulta a que se consulte cada unidad por separado en vez de todas
las unidades, con eso quite el group by y use el limit y por cada
unidad tarda algunos milisegundos.. haciendo cuentas cada flota tiene
aprox 100 unidades multiplicando esto por los milisegundos que tarda
cada unidad resulta mas rapido hacer un ciclo en programación que
consulte cada unidad de la flota.. por lo que se harian 100 consulta
con el limit 1... Aqui el indice que sugeriste ayudo bastante. Muchas
gracias.


 (Este es el de 9.0.  Si estás usando otra versión tendrás que buscar el
 mismo archivo a partir de otro HEAD).

Para opciones de repliacion planeadas mas adelante voy a pasarme a la
version 9 de postgres ( ahorita estoy en la 8.4),  crees que ayude
tambien a las consultas?


 --
 Álvaro Herrera alvhe...@alvh.no-ip.org


Muchas gracias por todos tus comentarios Álvaro ayudaron bastate a
resolver dudas y mejorar mi tabla.  Felicitaciones a los programadores
el codigo esta muy explicito y excelentemente bien comentado.


Para la Lista mi solucion sera cambiar de una Consulta sobre todos los
registros con Group by a varias consultas pequeñas y rapidas por
unidad sin group by.


Saludos


Roberto Campos
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Ayuda Consulta de fechas

2011-07-27 Por tema motum hesa
Como comentario adicional ya llevo 2 semanas con particionamiento 2
particiones llenas y una comenzo hoy... haciendo pruebas si mejoro la
consulta inicial en muchos segundos... detalles como activar el
parametro constrain_exclusion y crear los indices me hicieron darme de
topes un rato pero yo creo que igualmente en produccion creare las
particiones, aqui al ser tablas que ya no se van a modificar
convendria usar indices con clustered?


 Ten presente que puedes agregar restricciones NOT NULL a varios campos
 de una tabla a la vez, no tienes por qué ir de uno en uno:

 alvherre=# create table motum (a int, b int);
 alCREATE TABLE
 alvherre=# alter table motum alter a set not null, alter b set not null;
 ALTER TABLE
 alvherre=# \d motum
Tabla «public.motum»
  Columna |  Tipo   | Modificadores
 -+-+---
  a   | integer | not null
  b   | integer | not null



Gracias eso no lo sabia...



 Sí, por eso me gusta trabajar en este código.


Hablando de trabajar, alguna manera de contribuir al proyecto en mis
pocos tiempos libres, soy pogramador, traductor, intento ser DBA... y
pues lo que pueda ayudare...

 --
 Álvaro Herrera alvhe...@alvh.no-ip.org



Saludos


Roberto Campos
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Ayuda Consulta de fechas

2011-07-26 Por tema motum hesa
Hola Alvaro, gracias por responder,  Estoy tratando de checar todo lo
que me comentaste, mas o menos como sigue


 Creo que parte del problema es que los índices no están bien escogidos.
 La lista es la siguiente:

        datosentrada_his_pk PRIMARY KEY, btree (importacionid)
        fki_importacionid_his btree (importacionid)
        fki_vehiculo_his btree (unitno, flota)
        fki_viajeactivo_his btree (viajeactivo)
        ind_fecha btree (fechacreacion DESC)
        inf_fecha_id_his btree (fechacreacion, importacionid)

 El índice fki_importacionid_his no sirve para nada porque la llave
 primaria ya creó un índice en ese mismo campo.  Te sugiero borrarlo.

Hoy lo borro


 El índice ind_fecha es redundante con inf_fecha_id_his.  A menos que se
 uso mucho, te sugiero borrarlo también.  Hago notar que un índice se
 puede recorrer en ambas direcciones, así que tener uno ASC y uno DESC no
 aporta en nada.  Te sugiero borrar ind_fecha.


Si tengo muchas consultas solo por la fecha, buscando pues uso menos
el segundo indice el cual pues intentare borrar para ver que pasa. de
hecho casi siempre busco una fecha para obtener el valor del campo
importacionid


 El índice fki_viajeactivo_his suena bastante sospechoso, pero habría que
 saber qué hace el campo viajeactivo antes de dar una opinión.


El campo viajeactivo, hace referencia a otra tabla que es donde se
guardan los viajes realizados por una unidad por ejemplo, salio de
base tal dia con tales valores y regreso tal dia con tales valores, en
la tabla en cuestion datosentrada_his  se hace referencia a
viajeactivo en el momento que llegaron los datos para cuando se quiera
hacer el analisis del viaje o si se quiere hacer un analisis solo por
fecha.



 Ninguno de estos cambios haría nada para mejorar esta consulta, pero sí
 debería ayudar a que el sistema sea un poco menos lento en términos
 generales.

Ok.. eso ayudara mucho.. gracias


 Para mejorar esta consulta creo que deberías tener un índice en
 (unitno, flota, fechacreacion).  Agrégalo y prueba de nuevo la consulta
 a ver si lo usa.

Voy a crear el indice que mencionas aunque precisamente las consultas
lentas no incluyen unidad,  pero es posible que ayude con el group asi
k lo hare hoy en la noche. gracias nuevamente.


 Ya mencionaste que has hecho modificaciones en una BD que escribió
 otra persona, sin cambiar los campos de las tablas.  Yo te recomendaría
 bastante que trataras de hacer una mejora en el diseño moviendo columnas
 de manera que tu diseño sea normal (como en forma normal).


Ok.. por su puesto que hare caso a esa recomendacion aunque no lo
puedo hacer rapido ya que voy a tener un problema con los
programadores.. jejeje.. trabajan hibernate y pues van a repelar..
mientras tanto tratare de hacer un diseño mejor de esa tabla usando la
forma normal. Gracias nuevamente por constestar..  ya te comentare
que pasa con los cambios.



 --
 Álvaro Herrera alvhe...@alvh.no-ip.org


Mientras tanto te comento que las consultas mas lentas son donde uso
las funciones MAX y MIN... el indice que me comentas ayudara... o
tienes alguna recomendacion mas para usar este tipo de funciones. ?


Saludos


Roberto Campos
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Ayuda Consulta de fechas

2011-07-25 Por tema motum hesa
Disculpen el reenvio, pero ya no recibi respuesta y no se si llego el
correo, solo lo reenviare esta vez por si las dudas.

Entre tanto les comento que probe la consulta en otra tabla con menos
campos pero igual mas de (50 millones de registros)... en la cual no
tengo ningun campo en nulo (pos si afectaba). y pasa exactamente lo
mismo, hago la consulta con fechas entre 1 mes.. y  tarda demasiado
tiempo en traer datos ( mas de 5 minutos), pense que solo era en
fechas pero tambien pasa en el id de la tabla ( importacionid) , se
que postgresql soporta bases de datos mucho mas grandes a la que estoy
manejando y supongo debe haber una forma de hacer mas rapidas estas
consultas. De verdad necesito su ayuda ya que yo recomende ampliamente
postgresql y ya me estan diciendo que debi seleccionar otro manejador
de BD (llegue al proyecto como consultor y desarrollador de sistemas
embebidos y ahora soy el DBA entre otras cosas). Saludos.

Roberto Campos

P.D. Ya comence con pruebas de particionamiento y aunque apenas llevo
2 particiones no he notado mejoria en la consulta que les presente.
Aunque si en otro tipo de consultas que no requieren agrupación.



El día 22 de julio de 2011 20:41, motum hesa mot...@gmail.com escribió:
 Alvaro una disculpa quise editar la consulta para que se viera mas
 rapido el tipo de campo.. pero ahora que les mande la estructura pues
 ya no es necesario


Hmm, aquí no hay ninguna columna idtbl.  Por favor muestra la consulta
y el explain analyze con los nombres correctos de las columnas, sin
editorialización.

 Esta es la consulta original, ahorita cambio el tiempo que muestra el
 explain debido a las fechas por las que voy.


 select     max(importacionid), min(importacionid),
        unitno, flota
        from     datosentrada_his
        where     fechacreacion BETWEEN '2011-06-01 00:00:00' and '2011-07-01
 23:59:59'
        group by unitno,flota order by unitno

        Sort  (cost=969443.39..969445.32 rows=775 width=18)
   Sort Key: unitno
   -  HashAggregate  (cost=969394.57..969406.19 rows=775 width=18)
         -  Index Scan using ind_fecha on datosentrada_his
 (cost=0.00..925042.61 rows=4435196 width=18)
               Index Cond: ((fechacreacion = '2011-06-01
 00:00:00'::timestamp without time zone) AND (fechacreacion =
 '2011-07-01 23:59:59'::timestamp without time zone))





 El día 22 de julio de 2011 18:08, Jaime Casanova
 ja...@2ndquadrant.com escribió:
 On Fri, Jul 22, 2011 at 5:16 PM, motum hesa mot...@gmail.com wrote:

 Table public.datosentrada_his
       Column        |            Type             | Modifiers
 -+-+---

 aunque no es lo que preguntaste, te dire que tanto campo que acepta
 NULL me huele a mal diseño (especialmente porque hay campos que
 obviamente estan relacionados entre si de forma especial


 Hola Jaime, gracias por el comentario, efectivamente el sistema tenia
 un mal diseño de base de datos cuando lo tome, yo he tratado de
 mejorarlo con indices, llaves primarias y foraneas en donde debe ser,
 trato de evitar la insercción de nullos en los campos que viste pero
 no he cambiado la estructura, si es recomendable hoy mismo lo hago en
 los campos que ya estoy seguro que no hay nullos...


 --
 Jaime Casanova         www.2ndQuadrant.com
 Professional PostgreSQL: Soporte 24x7 y capacitación


Alvaro Herrera
Sí, hay varias cosas que son sospechosas en este diseño ... pareciera
una tabla donde se almacenan detalles crudos (posición geográfica en un
momento determinado) junto con detalles cocinados (análisis a partir de
la historia del movimiento del vehículo).  Eso deberías evitarlo, porque
crea todo tipo de problemas.


 de hecho todo esos datos ya fueron procesados y son guardados como
 historicos en esta tabla. Aunque si me puedes decir algun tipo de
 problemas que tu consideres se presente en este diseño de tabla lo
 tomare en cuenta para una posible reestructuracion...


 Saludos y gracias por sus consejos, siempre son bienvenidos...



 Roberto Campos

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Ayuda Consulta de fechas

2011-07-22 Por tema motum hesa
Hola ya habia contestado pero no me fije que se fue a borradores el
correo, pero bueno disculpen la demora... aqui esta la salida del
comando:


 Muestra el \d de la tabla y qué índices tiene.

 --
 Álvaro Herrera alvhe...@alvh.no-ip.org



Table public.datosentrada_his
   Column|Type | Modifiers
-+-+---
 fechaentrada| timestamp without time zone |
 lat | double precision|
 lng | double precision|
 direccion   | character varying   |
 entrandosaliendo| integer |
 odometrototal   | double precision|
 hrastotalmotor  | double precision|
 hrastotalpto| double precision|
 hrastotalralenti| double precision|
 combustotalralenti  | double precision|
 combustotalpto  | double precision|
 bateria | double precision|
 altitud | double precision|
 factorcarga | double precision|
 torque  | double precision|
 conexiontrailer1| integer |
 conexiontrailer2| integer |
 refpunto| integer |
 refciudad   | integer |
 unitno  | character varying(15)   | not null
 flota   | character varying(40)   | not null
 importacionid   | bigint  | not null
 viajeactivo | integer |
 cro | integer |
 ignicion| boolean |
 pia | integer |
 fechaenvio  | timestamp without time zone |
 fechacreacion   | timestamp without time zone |
 point_geom  | geometry|
 point_geomutm   | geometry|
 combustibletotal| double precision|
 dkilometros | double precision|
 dhoraspto   | double precision|
 dhorasmotor | double precision|
 dcombustible| double precision|
 velpromedio | double precision|
 dhorasralenti   | double precision| default 0
 nalarmas| smallint| default 0
 nfallas | smallint| default 0
 nmensajes   | smallint| default 0
 tempmotor   | double precision|
 tempaceite  | double precision|
 presionturbo| double precision|
 presionaceite   | double precision|
 rpm | integer |
 tiempo_optimas_rpm  | double precision| default 0
 tiempo_retarder | double precision| default 0
 dcombustibleralenti | double precision|
 dcombustiblepto | double precision|
 dtiempo_optimas_rpm | double precision|
 dtiempo_retarder| double precision|
 mrefp   | double precision|
 mrefc   | double precision|
 pendientes  | smallint|
 pos_gps | boolean |
 minrpm  | integer |
 engrane_transmision | integer |
 vel_max | double precision|
 compre_break_dis| double precision|
 cont_apli_fren  | integer |
 cont_ace_brusca | integer |
 cont_desac_brusca   | integer |
 total_eng_cruise| double precision|
 odom_virtual| double precision|
 num_sate| integer |
 vel_gps | integer |
 edobatt | smallint| default 2
Indexes:
datosentrada_his_pk PRIMARY KEY, btree (importacionid)
fki_importacionid_his btree (importacionid)
fki_vehiculo_his btree (unitno, flota)
fki_viajeactivo_his btree (viajeactivo)
ind_fecha btree (fechacreacion DESC)
inf_fecha_id_his btree (fechacreacion, importacionid)
Check constraints:
enforce_dims_point_geom CHECK (ndims(point_geom) = 2)
enforce_dims_point_geomutm CHECK (ndims(point_geomutm) = 2)
enforce_geotype_point_geom CHECK (geometrytype(point_geom) =
'POINT'::text OR point_geom IS NULL)
enforce_geotype_point_geomutm CHECK (geometrytype(point_geomutm)
= 'POINT'::text OR point_geomutm IS NULL)
enforce_srid_point_geom CHECK (srid(point_geom) = 4326)
enforce_srid_point_geomutm CHECK (srid(point_geomutm) = 32614)
Foreign-key constraints:
historico_vehiculo FOREIGN KEY (unitno, flota) REFERENCES
vehiculos(unitno, flota) ON UPDATE CASCADE
Triggers:
pdatosentrada_his_trig 

Re: [pgsql-es-ayuda] Ayuda Consulta de fechas

2011-07-22 Por tema motum hesa
Alvaro una disculpa quise editar la consulta para que se viera mas
rapido el tipo de campo.. pero ahora que les mande la estructura pues
ya no es necesario


Hmm, aquí no hay ninguna columna idtbl.  Por favor muestra la consulta
y el explain analyze con los nombres correctos de las columnas, sin
editorialización.

Esta es la consulta original, ahorita cambio el tiempo que muestra el
explain debido a las fechas por las que voy.


select max(importacionid), min(importacionid),
unitno, flota
from datosentrada_his
where fechacreacion BETWEEN '2011-06-01 00:00:00' and '2011-07-01
23:59:59'
group by unitno,flota order by unitno

Sort  (cost=969443.39..969445.32 rows=775 width=18)
  Sort Key: unitno
  -  HashAggregate  (cost=969394.57..969406.19 rows=775 width=18)
-  Index Scan using ind_fecha on datosentrada_his
(cost=0.00..925042.61 rows=4435196 width=18)
  Index Cond: ((fechacreacion = '2011-06-01
00:00:00'::timestamp without time zone) AND (fechacreacion =
'2011-07-01 23:59:59'::timestamp without time zone))





El día 22 de julio de 2011 18:08, Jaime Casanova
ja...@2ndquadrant.com escribió:
 On Fri, Jul 22, 2011 at 5:16 PM, motum hesa mot...@gmail.com wrote:

 Table public.datosentrada_his
       Column        |            Type             | Modifiers
 -+-+---

 aunque no es lo que preguntaste, te dire que tanto campo que acepta
 NULL me huele a mal diseño (especialmente porque hay campos que
 obviamente estan relacionados entre si de forma especial


Hola Jaime, gracias por el comentario, efectivamente el sistema tenia
un mal diseño de base de datos cuando lo tome, yo he tratado de
mejorarlo con indices, llaves primarias y foraneas en donde debe ser,
trato de evitar la insercción de nullos en los campos que viste pero
no he cambiado la estructura, si es recomendable hoy mismo lo hago en
los campos que ya estoy seguro que no hay nullos...


 --
 Jaime Casanova         www.2ndQuadrant.com
 Professional PostgreSQL: Soporte 24x7 y capacitación


Alvaro Herrera
Sí, hay varias cosas que son sospechosas en este diseño ... pareciera
una tabla donde se almacenan detalles crudos (posición geográfica en un
momento determinado) junto con detalles cocinados (análisis a partir de
la historia del movimiento del vehículo).  Eso deberías evitarlo, porque
crea todo tipo de problemas.


de hecho todo esos datos ya fueron procesados y son guardados como
historicos en esta tabla. Aunque si me puedes decir algun tipo de
problemas que tu consideres se presente en este diseño de tabla lo
tomare en cuenta para una posible reestructuracion...


Saludos y gracias por sus consejos, siempre son bienvenidos...



Roberto Campos
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] Ayuda Consulta de fechas

2011-07-20 Por tema motum hesa
Hola a menos que me equivoque no vi en los archivos que revise de la
lista que trataran este tema, Tengo la siguiente consulta

select nombre, tipo, max(idtbl) , min(idtbl)
from tabla_grande where  fechacreacion between '2011-07-01 05:00:00'
and '2011-07-21 04:59:00' group by nombre, tipo order by nombre

El problema es que tarda demasiado en traerme datos, y pues solo
quiero el max y el min, le hice un explain y me arrojo lo siguiente.

Sort  (cost=432277.66..432377.66 rows=4 width=18)
  Sort Key: public.tabla_grande.nombre
  -  HashAggregate  (cost=428620.12..429220.12 rows=4 width=18)
-  Append  (cost=0.00..410897.41 rows=1772271 width=18)
  -  Index Scan using ind_fecha on tabla_grande
(cost=0.00..410897.41 rows=1772271 width=18)
Index Cond: ((fechacreacion = '2011-07-01
05:00:00'::timestamp without time zone) AND (fechacreacion =
'2011-07-12 04:59:00'::timestamp without time zone))



Para arreglarlo estuve buscando en la red y encontre que podria usar
indices tipo GIST para consultas con fechas pero no encontre ningun
ejemplo.

Mas datos sobre mi hardware y software:
2 QUAD XEON
6 GB RAM
4 x 150GB 10KRPM SATA en RAID 10
Freebsd 64 bits
Postgres 8.4.7 tuneado para este server con ayuda de la lista (
gracias nuevamente ayudo mucho al desempeño general)
tabla_grande mas de 50 millones de registros y cada dia crece  1/2 millon mas


Otra de las opciones es agregar particionamiento a esa tabla... ya lo
hice esta semana y pues espero probar para checar resultados.

Saludos y de antemano gracias por su ayuda.


Roberto Campos
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] Hardware para mejor funcionamiento de PostgreSQL

2011-06-08 Por tema motum hesa
Finalmente después de mucho optimizar PostgreSQL y software se ha
decidido mejorar el hardware. Así que les pido su opinión sobre lo
siguiente:

FreeBSD x64
Dual Xeon 2.13Ghz Nehalem
6 GB RAM
1 disco de 500GB SATA

o

2 Discos de 300GB Velociraptor 10k RPM RAID 1


También nos ofrecen  4 HDD de 150GB 10K en RAID 10

¿Cuál sería la mejor opción en HDD? ¿Qué mas recomiendan para que
PostreSQL esté contento con el hardware?.

Gracias.
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Hardware para mejor funcionamiento de PostgreSQL

2011-06-08 Por tema motum hesa
La opcion que tambien se me ocurre es un disco de 500 para SO y logs y un
array ya sea RAID 1 o 10 para la bd, que opinan?

El jun 8, 2011 9:51 a.m., Miguel Angel Hernandez Moreno 
miguel.hdz@gmail.com escribió:

saludos

Yo siempre opto pro el RAID 10, ya que en performance es mejor
la escritura para postgres, solo que esta el detalle que te kita bastasnte
espacio, pero ahi va una cosas por otra. Pero ya depende de cuanto
espacio vallas a requerir, has tus cuentas y escoge el mejor

de los procesadores los Xeon son buenos y 6 GB de ram tambien
me parece bien

El 8 de junio de 2011 09:40, motum hesa mot...@gmail.com escribió:

   Finalmente después de mucho optimizar PostgreSQL y software se ha 
 decidido mejorar el hardware...
 -
 Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
 )
 Para cambiar tu suscripción:
 http://www.postgresql.org/mailpref/pgsql-es-ayuda




-- 
ISC Miguel Angel Hernandez Moreno


Re: [pgsql-es-ayuda] Hardware para mejor funcionamiento de PostgreSQL

2011-06-08 Por tema motum hesa
        Pero con los datos que das, yo en principio optaría por el RAID
 10 por tener más spindles, pero depende de si luego vas a necesitar
 ampliar capacidad y te vas a quedar sin slots de disco. El procesador y
 la RAM de verdad no me atrevo a opinar sin conocer el uso que va a tener
 la máquina.


La base de datos pesa  +20 GB y se cuenta con 5 programas escritos en
Java que estarán durante todo el día haciendo consultas, inserts
updates y demás. Además de 1 aplicación web (JSP servidor Glassfisg
2.1) que también realiza modificaciones a la base de datos.


 P.D. De tu email deduzco que optas por no optimizar postgres (o no
 optimizarlo más) y comprar hardware nuevo. No es mala opción nunca tener
 mejor hardware (si hay presupuesto), pero esto no garantiza mayor
 rendimiento, porque tal vez el problema está en otro sitio...


PostreSQL se seguirá optimizando, así mismo el software se seguirá
optimizando.  Con el problema anterior se hicieron muchas pruebas y
aunque el consumo si se logró bajar el hardware no da para más.. Las
pruebas las puedes encontrar en la lista con el asunto PostgreSQL
consumo de CPU
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Particiones y funciones

2011-05-26 Por tema motum hesa
El día 26 de mayo de 2011 11:29, Jaime Rivera jriv...@ende.bo escribió:
  Si se puede, si es que llenas tus tablas partiocionadas a través de un
 trigger, la misma función del trigger puede crear la tabla para el siguiente
 mes en caso de ser necesario.


Ok, gracias mi duda es si el trigger se autoactualizar para redirigir
los registros hacia esa nueva tabla.
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] PostgreSQL consumo de CPU

2011-05-26 Por tema motum hesa
 Aparte de lo que han comentado los compañeros:

 a) Yo miraria en iostat y en top que estan haciendo los postgres. Si estan
 en iowait (en top), tienes demasiada carga en los discos duros.

 b) Como has creado las tablas? Que tipo carga de trabajo tienen?
 Mayoritariamente Selects o Inserts, updates y deletes? Depende de como lo
 uses habra que configurarlos.

 c) Creaste las tablas de forma automatica con una herramienta (hibernate,
 p.ej.) o a mano. Si es con una herramienta automatica, asegurate que te ha
 creado todos los indices que necesitas.

 d) En vez de un vacuum analyze, yo activaria autovacuum analyze y ejecutaria
 cluster en las tablas de mas uso por el indice de mas uso (apagando antes
 las aplicaciones para que no bloqueen la tabla) de vez en cuando. Mira la
 documentacion por que 'cluster' necesita espacio de disco para funcionar.

 e) Si no recuerdo mal, en la version 8.4 pusieron demasiado altas las veces
 que realiza un analyze para tomar estadisticas, yo tambien lo reduciria.

 f) Usas muchas funciones agregadas? Todas las consultas incluyen un order
 by? Dependiendo del tipo de consultas (selects) que hagas la configuracion
 tambien cambiara.

 g) Pasate por la lista de correo de freebsd-es. Igual alli te orientan mejor
 sobre como configurar el sistema.

Gracias por contestar. En el top los procesos aparecen en RUN. Por
lo demás lo estaré revisando y ya contaré como ha ido todo.

Gracias a todos.
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] PostgreSQL consumo de CPU

2011-05-19 Por tema motum hesa
Que tal. He cambiado el max_prepared_transacions a 0. Por ahora
postgres con los valores que me han recomendado si ha bajado su
consumo de CPU pero igualmente no es el deseado. Estaremos probando
como sigue el consumo con la nueva config.

Alguna otra recomendación?.

Gracias
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] PostgreSQL consumo de CPU

2011-05-19 Por tema motum hesa
Sí se utilizan, se cambió el valor solo por recomendación y ver si
realmente afecta o no el consumo de cpu de postgres.

Si la optimización de PostgreSQL no ayudará mucho en el consumo de
CPU, ¿qué otras cosas recomiendan hacer?.

Muchas gracias!
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] PostgreSQL consumo de CPU

2011-05-18 Por tema motum hesa
Que tal.

Actualmente contamos con un servidor (Intel Xeon Dual, 2 GB de RAM,
RAID 1 SATA 320 GB - FreeBSD 8 32 bits) con PostgreSQL 8.4.5. Pero
tenemos el problema de que postgres está consumiento el 100% de CPU lo
que genera un mal rendimiento en las aplicaciones web. Hemos notado
que esto se debe a 3 aplicaciones que se conectan (realizan inserts,
updates, etc) a la base de datos (no abren más de 30 conexiones) así
que se optimizaron, además de que también se optimizó PostgreSQL con
los siguientes valores:

max_connections = 100
shared_buffers = 512MB
max_prepared_transactions = 100
work_mem = 10MB
maintenance_work_mem = 256 MB
checkpoint_segments = 64
effective_cache_size = 768 MB
max_locks_per_transaction = 128

Ya se realizó vacuum analyze además de que se activó el autovacuum
para las tablas con más carga de actualización. Si ha tenido un efecto
en el consumo de CPU pero no el deseado. Cabe mencionar que localmente
se cuenta con un servidor con las mismas aplicaciones y versión de
postgres con la única diferencia que tiene 4GB de RAM (FreeBSD 8 64
bits) y Postgres trabaja correctamente. ¿Se debería aumentar la
memoria RAM del servidor contratado? ¿Disminurá esto el consumo de
CPU? ¿Qué otras opciones recomiendan?.

Gracias
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] PostgreSQL consumo de CPU

2011-05-18 Por tema motum hesa
Marcos Ortiz:

Muchas gracias por las guías y recomendaciones, las estaré leyendo y
probando para ver si noto alguna diferencia. En donde puedo ver la
charla Whackamole?.

Gracias.


Jaime Casanova:

En las aplicaciones que manejamos si se utilizan transacciones
preparadas. Ya estaré probando las opciones que me dijiste que
cambiara. Gracias
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: Re: [pgsql-es-ayuda] Replicar datos sin IP FIJA

2010-02-19 Por tema motum hesa
Ok... muchas gracias por los comentarios, pues miren vamos a probar 2
alternativas ( dejando la VPN como reserva ya que suena buena idea):

1.- Realizar un webservice en JAVA que se encargue de pasar los
objetos relacionados a las tablas para descargarlos directamente
poniendo del lado del server un pool de conexiones y un administrador
de carga para soportar varias conexiones y del lado del cliente
descargando la informacion a  postgres.

2.- Al mismo tiempo desarrollare un programa de conexion por sockets
en el cual con un pequeño protocolo que desarrolle hace un par de años
podria enviar la informacion haciendo que el cliente se conecte con un
programita de sockets  que voy a poner a en el servidor con IP fija,
asi no importara la ip que tenga el cliente, de todas maneras
necesitaria un programa cliente.

nuevamente agradesco todos sus comentarios en verdad ayudan mucho...
espero tener pronto algo funcionando y si puedo comentare el
resultado. Saludos





El día 19 de febrero de 2010 13:08, Jonathan Finlay
jmfinl...@gmail.com escribió:

 ¿¿??

 Ciertamente si hace una VPN lo que debería hacer es conectar el nodo con
 IP variable a la VPN, y por lo tanto no necesita tener un dyndns o
 equivalente.

 En mi experiencia, usar dyndns para una cosa como esta es frágil y
 complicado.

 Es cierto y yo preferiría una VPN sin duda alguna, pero esto dependería de
 las circunstancias, no se puede negar que es una alternativa viable y
 dependerá de las posibilidades que tenga para realizar una u otra
 configuración, tomando en cuenta que la que yo doy no es la más segura pero
 es la mas rápida.

 Y en mi experiencia no he tenido problemas con dns dimamicos y este tipo de
 configuración en los tiempos de la universidad en unos experimentos de
 aplicaciones distribuidas y se registran de vez en cuando errores de
 timeout.

 --
 Jonathan.



 --
 Jonathan.

--
TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo 
agradecerán


Re: Re: [pgsql-es-ayuda] Replicar datos sin IP FIJA

2010-02-18 Por tema motum hesa
Hola gracias por todos los comentarios.. una de las ideas era realizar
el replicador con webservices, estuve leyendo sobre VPN y suena una
buena opcion y pues al parecer implementare los webservices y cuando
tenga mas experiencia en las VPN le dare por ahi... k por cierto me
gusto OPENVPN.. pero no lo vi para FreeBSD, tendre que buscarle mas.

El día 18 de febrero de 2010 11:59, Jonathan Finlay
jmfinl...@gmail.com escribió:
 Por que no configuras un puerto en tu router o en tu firewall para hacer
 forwarding hacia la maquina a donde vas a replicar la base de datos y ya.



Esto ultimo tendria el inconveniente de que cada vez k la maquina con
ip dinamica cambiara tendria que esta cambiando la configuracion, no
me suena buena idea, pero tal vez eres experto en eso y hay algo k no
sepa k me puedas comentar. gracias

 --
 Jonathan.

--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo


Re: [pgsql-es-ayuda] Replicar datos sin IP FIJA

2010-02-17 Por tema motum hesa
El día 17 de febrero de 2010 15:31, Alvaro Herrera
alvhe...@alvh.no-ip.org escribió:
 motum hesa escribió:
 Hola he probado SLONY para replicar datos de postgres y me ha
 funcionado perfectamente... sin embargo ahora me encuentro con el
 problema de que la replicación tiene que hacerse desde un lugar
 distante y por lo que cheque no puedo usar un dns para hacer la
 replicacion y pues no tengo una IP FIJA, alguien sabe de alguna
 herramienta que pueda ayudarme.

 Usa una VPN.


Hola perdona la ignoracia, pero con la VPN no necesito tener IP fija
en los 2 lados?
Con SLONY puedo hacer la replicacion con la VPN?

si tienen algo de info para empezar se los agradecere.


 --
 Alvaro Herrera       Vendo parcela en Valdivia:  http://rie.cl/?a=255568
 El conflicto es el camino real hacia la unión

--
TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo 
agradecerán


[pgsql-es-ayuda] Replicar datos sin IP FIJA

2010-02-16 Por tema motum hesa
Hola he probado SLONY para replicar datos de postgres y me ha
funcionado perfectamente... sin embargo ahora me encuentro con el
problema de que la replicación tiene que hacerse desde un lugar
distante y por lo que cheque no puedo usar un dns para hacer la
replicacion y pues no tengo una IP FIJA, alguien sabe de alguna
herramienta que pueda ayudarme.

Otra cosa que estoy comenzando a plantear es la posibilidad de hacer
una replicación con web services, pero todavia no tengo bien definido
esto, si alguien tiene algun comentario  o sugerencia, se los
agradecere mucho.


Gracias a todos de antemano por su respuesta,

Motums
--
TIP 7: no olvides aumentar la configuración del free space map


Re: [pgsql-es-ayuda] Inserccion muy lenta a una base de datos

2010-01-06 Por tema motum hesa
Mcuhas gracais por tu respuesta fernando, pues hice varias cosas,
mejore los indices, y pues le subimos al pool de conexiones, con eso
mejoro mucho la inserccion y pues voy a checar lo de la actualización
a postgres 8.3 uso postgis me imagino que tendre que buscar tambien la
libreria correcta para la version que traiga el 8.3.. Saludos y
nuevamente gracias por tu respuesta
--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net


Re: [pgsql-es-ayuda] Inserccion muy lenta a una base de datos

2010-01-04 Por tema motum hesa
Hola disculpa la tardanza.. por error mande la respuesta a borrador en
vez de enviarla por correo y hasta ahorita me di cuenta



 El primer paso es determinar dónde está el cuello de botella: ¿CPU o discos?
 Monitorea tu sistema y confirma qué valores se disparan al momento que notas
 las transacciones muy lentas.

 De todas maneras, los síntomas descriptos sugieren problemas de concurrencia
 con checkpoints.
 Comentanos qué versión de Postgres estás utilizando, como está configurado
 (shared_buffers, checkpoints, synchronous_commit) y la naturaleza de tu
 hardware, en especial el I/O, y el sistema operativo.


Postgres 8.2.9 ( con postgis 1.3.2 ) .- Tengo un sistema en JAVA que
usa esas mismas librerias, espero actualizar este año.
En cuanto a la configuración es la siguiente:

shared_buffers = 24MB
Sobre Checkpoitns no tengo ninguna configuración por desgracia
desconosco del tema pero ya comence a investigar.. te agradeceria si
tienes info sobre esto. Por lo tanto no tengo activado el WAL ( o mas
bien todo lo referente a eso esta comentado)

En cuanto al Hardware tengo:
AMD de 2 nucleos a 2GHZ
3 GB de memoria ram
1 disco SATA de 160GB a 7200rpm

SO: SLACKWARE 11
GLASSFISH 2 ( como servidor de paginas web)

Comento que este servidor es de pruebas por que ahorita solo atiende a
20 dispositivos la idea original era que soportara 100 y de ahi a
mejorar el hardware.




 Antes de hacer cambios debes confirmar que este sea el problema, para lo
 cual según la versión de Postgres que corras dispones de distintas
 herramientas.

 Te recomiendo vayas leyendo la guía de Greg Smith:
 http://www.westnet.com/~gsmith/content/postgresql/chkp-bgw-83.htm


He leido el documento y me parece muy interesante y aunque trae cosas
para la version 8.2 casi todo es para la version 8.3 aqui tengo un
dilema entre buscar mas para la version que tengo o intentar
actualizar ( esperando no colapse mi sistema por las librerias que uso
en JAVA )


 Saludos,
 Fernando.



Saludos y gracias por la respuesta.
--
TIP 4: No hagas 'kill -9' a postmaster


[pgsql-es-ayuda] Inserccion muy lenta a una base de datos

2009-12-30 Por tema motum hesa
Tengo un sistema al que inserto datos periodicos cada 10 segundos, por
la forma en que esta diseñado todo esas insercciones pueden ser 1 o 2
hasta 120, son datos binarios que se traducen en información leible
con un programita en java, cuando todo esta normal los datos se
traducen y se insertan en la base de datos casi inmediatamente, pero
en algunas ocaciones cuando hay muchos datos pendientes, resulta que
la inserccion en la misma base de datos llega a tardar has 1 min por
dato a insertar ( cada vez que inserto se disparan varios triggers en
la base de datos)  despues de unas horas ya que se tradujeron todos
los pendientes todo vuelve a la normalidad y se traducen los datos
como antes ( 1 dato normalmente se tarda de 1 o 3 segundos en
traducirce ),

Mi pregunta especificiamente es:

¿Hay alguna manera de saber por que se alenta la inserccion?

Se que pueden ser los triggers pero la verdad son varios y no se hay
alguna manera de checar cual es el que se esta atorando, gracias por
todo de antemano... Saludos


Motum
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda


[pgsql-es-ayuda] problema: FATAL: role postgres is not permitted to log in

2009-12-07 Por tema motum hesa
Hola...  creé un nuevo usuario en pgadmin III y funciono sin
problemas, este usuario solo tiene permisos para ver una base de
datos, pero resulta que al intentar entrar con el usuario postgres
nuevamente  me manda el siguiente problema:

 FATAL:  role postgres is not permitted to log in

ya cheque el pg_hba y reinicie el server para cargar otra
configuracion y nada.. no puedo entrar a mis bases de datos.. solo a
verlas con el nuevo usuario. Hay alguna manera de restablecer el
permiso para el usuario postgres?

Saludos y de antemano  gracias por sus aportaciones...
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda


Re: [pgsql-es-ayuda] problema: FATAL: role postgres is not permitted to log in

2009-12-07 Por tema motum hesa
Investigando un poco mas en mis configuraciones al parecer el problema
es que no permite que me logge como postgres... como le reactivo esto?

o si alguien cree que es otra cosa con gusto acepto propuestas... Saludos



El día 7 de diciembre de 2009 13:08, motum hesa mot...@gmail.com escribió:
 Hola...  creé un nuevo usuario en pgadmin III y funciono sin
 problemas, este usuario solo tiene permisos para ver una base de
 datos, pero resulta que al intentar entrar con el usuario postgres
 nuevamente  me manda el siguiente problema:

  FATAL:  role postgres is not permitted to log in

 ya cheque el pg_hba y reinicie el server para cargar otra
 configuracion y nada.. no puedo entrar a mis bases de datos.. solo a
 verlas con el nuevo usuario. Hay alguna manera de restablecer el
 permiso para el usuario postgres?

 Saludos y de antemano  gracias por sus aportaciones...

--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
   http://archives.postgresql.org/pgsql-es-ayuda


Re: [pgsql-es-ayuda] problema: FATAL: role postgres is not permitted to log in

2009-12-07 Por tema motum hesa
Muchas gracias.. funciono perfectamente.. solo agrego que una vez
entrado a modo standalone escribi lo siguiente:

alter role postgres login;
control+d

Saludos..
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envía unregister TuDirecciónDeCorreo a majord...@postgresql.org)


Re: [pgsql-es-ayuda] Problema con Funcion Llamada por Trigger

2009-11-25 Por tema motum hesa
Si es posible intenta con AFTER en vez de BEFORE en la creacion del trigger



2009/11/25 Jorge Jacques jo...@eskalonnetwork.com:
 Hola, beun día



 Tengo un problema con una función, que al ejecutarse por un Trigger devuelve
 NULL y no encuentro la razón.

 ---

 CREATE OR REPLACE FUNCTION public.actua_desref () RETURNS trigger AS

 $BODY$

 DECLARE

    empeno record;

    fechahoy date;

    fechaven date;

    diasm int;

    inmo float;

 BEGIN

     IF TG_OP='INSERT' THEN

     IF (NEW.tipo = 1 AND NEW.concepto = 1) OR (NEW.tipo = 1 AND
 NEW.concepto = 2) THEN

     SELECT INTO empeno fecha_venta, prestamo FROM empenos WHERE
 id=NEW.id;

     fechahoy = current_date;

     fechaven = TIMESTAMP WITH TIME ZONE 'epoch' + empeno.fecha_venta
 * INTERVAL '1 second';

     diasm = fechahoy - fechaven;

     inmo = ((0.5 * empeno.prestamo::float)/100) * diasm;

     NEW.cantidad = NEW.cantidad::float + inmo;

     return NEW;

     END IF;

     END IF;

 END

 $BODY$

 LANGUAGE 'plpgsql'

 ---

 CREATE TRIGGER calc_inmo

      BEFORE INSERT ON caja FOR EACH ROW

      EXECUTE PROCEDURE actua_desref()

 ---



 Al hacer un Insert Obtengo un:

 SQL Error: ERROR: null value in column “cantidad” violates not-null
 constraint.



 Esto me idica que el registro que regresa la funcion trae el campo cantidad
 a NULL, y no deberia ser así.



 Adicional a esto tengo una funcion que hice para probar que todo funcione
 correctamente (independientemente de esta) y al llamarla si me ejecuta
 correctamente:



 ---

 CREATE OR REPLACE FUNCTION public.pruebas () RETURNS float8 AS

 $BODY$

 DECLARE

    empeno record;

    fechahoy date;

    fechaven date;

    diasm int;

    inmo float;

 BEGIN

     SELECT INTO empeno fecha_venta, prestamo FROM empenos WHERE id=1618;

     fechahoy = current_date;

     fechaven = TIMESTAMP WITH TIME ZONE 'epoch' + empeno.fecha_venta *
 INTERVAL '1 second';

     diasm = fechahoy - fechaven;

     inmo = ((0.5 * empeno.prestamo::float)/100) * diasm;



     return inmo;

 END

 $BODY$

 LANGUAGE 'plpgsql'

 ---



 Alguna sugerencia?

 Gracias!!!
 Saluos!


--
TIP 8: explain analyze es tu amigo


[pgsql-es-ayuda] pg_ctl status ERROR

2009-09-04 Por tema motum hesa
Hola.. tengo un servidor en Freebsd 7.1 con  postgres 8.3 y esta
funcionando bien, el dia de hoy quise hacer una actualización a la
configuración y no pude reinciar el servidor, ni recargar el archivo
ni nada.. como si este no existiera.. de hecho en algunas ocaciones me
mando error de que no exite el archivo postmaster.pid en el directorio
de configuracion...  checo y si esta el archivo, lo mas raro es que el
sistema sigue funcionando me conecto con el comando psql y no hay
problema y por ultimo para checar le doy :

pg_ctl status

y me dice que no hay ningun servidor corriendo...


Saludos y espero sus aportaciones.. gracias de antemano


Motum Hesa...
--
TIP 5: ¿Has leído nuestro extenso FAQ?
 http://www.postgresql.org/docs/faqs.FAQ.html


[pgsql-es-ayuda] Recomendacion para replicacion en WINDOWS

2009-08-26 Por tema motum hesa
Ok... muchas gracias por las respuestas, mas que nada fue una consulta
de un colega y pues como no pude responderle me dirigi a ustedes:


 ¿Que tipo de sistema tienes que necesita esta funcionalidad?

 --
  Rafael Martinez, r.m.guerr...@usit.uio.no
  Center for Information Technology Services
  University of Oslo, Norway


el tipo de sistema es mas o menos asi:


1.- Una base de datos en un servidor posgres con informacion de la
produccion de una planta que es accesada diariamente y a cada rato,
por lo que investigue pues nada que postgres no pueda soportar

2.- La empresa en la que trabaja mi colega es una transnacional que
tiene 20 plantas en todo el mundo, por lo que segun se la idea es
interconectar todos los servidores locales en uno para que que todos
tengan la informacion de la produccion lo mas actualizada posible. de
hecho la idea es hacer replicacion entre ellas.

Como ya les habia comentado intente sugerir desarrollar un programa
que guardara los datos y que se comunicara con el server para
insertarlos posteriormente, tambien sugeri Oracle pero no me contesto,
debido a que estoy seguro que el no sabe Oracle y no queria meterse en
problemas.. jejeje

 Que yo sepa no existe ninguna solucion multi-maestro actualmente que
 este lista para funcionar con PostgreSQL en produccion. Hace un tiempo
 existia un projecto llamado 'pgclusters' que implementaba esto, pero por
 desgracia habia que parchear mucho el nucleo de postgresql y solamente
 lo mantenia una persona.

 Si necesitas funcionalidad de multimaestro, te queda RAC de Oracle o ASE
 de Sybase. Creo que DB2 tambien tiene esta posibilidad disponible.

 Pero la complejidad de administrar un sistema de este tipo a veces no
 merece la pena y en muchos casos es hasta innecesario.

Bueno, gracias a sus respuestas puedo decirle mas claramete que tiene
muchos problemas y tendras mas si intenta implementar replicacion
multimaestro en windows...

Lo que si voy a tener que plantearle es una forma convincente de tomar
otras medidas para solucionar su problema, si tienen alguna sugerecia
soy todo oidos... Saludos y nuevamente muchas gracias por sus
respuestas..

Motum Hesa

P.D. Gracias Alvaro por las aclaraciones... y las sugerencias.. :D .. Saludos...
--
TIP 8: explain analyze es tu amigo


[pgsql-es-ayuda] Recomendacion para replicacion en WINDOWS

2009-08-26 Por tema motum hesa
 ¿Que lenguaje de programación estas usando?

Pues son 2 principalmente JAVA y C#, pero se me ocurre que podria
realizar una aplicacion independiente para esto

 Se me ocurre que quizás puedas modificar un poco la aplicación (o el
 driver de conexión a la base de datos) para hacer commit en dos fases.

 Sds
 Mariano


ok, la verdad no se a que te refieras con el commint en dos fases pero
en un rato libre le busco a ver que encuentro, si tienes algo de
informacion te lo agradeceria...


Saludos


Motum Hesa
--
TIP 8: explain analyze es tu amigo


Re: [pgsql-es-ayuda] Recomendacion para replicacion en WINDOWS

2009-08-26 Por tema motum hesa

 En este caso lo que puedes hacer es replicar la informacion de cada
 planta a cada una de las otras plantas (pero las otras plantas no pueden
 modificar de una planta que no sea si misma).  Eso no tiene nada de
 especial, para Slony es un sistema maestro-esclavo comun y corriente.

 --
 Alvaro Herrera       Valdivia, Chile   ICBM: S 39º 48' 55.3, W 73º 15' 24.7
 La espina, desde que nace, ya pincha (Proverbio africano)


Ok.. gracias Alvaro, de hecho ya lo habia pensando aunque no tenia
bien definido como plantearlo y de hecho me agrada mas esta opcion que
la del COMMINT en dos faces principalmente por lo que comenta Manuel
Diego, pero las dos opciones pueden ser validas.

De verdad gracias por sus comentarios, su experiencia me ayuda
bastante... Saludos y espero algun dia poder aportar en vez de solo
preguntar (seguire leyendo manuales por lo mientras ;) )...

P.D. Si alguien tiene otra idea con gusto leere todas los comentarios.
--
TIP 7: no olvides aumentar la configuración del free space map


Re: [pgsql-es-ayuda] Cambiando parametros del kernel

2009-07-22 Por tema motum hesa
Hola Rafael:


 Hola

 ¿Cual es el tamaño estimado de la base de datos?



La base de datos ahorita es de aproximamente 100MB... pero estamos
hablando de que se pretenden agregar unos 100kb por minuto...
dependiendo de la informacion generada externamente...  asi que
estariamos hablado en un mes de una base de datos de mas de 4GB


 Estas hablando de 100 usuarios conectados, pero ¿son conexiones abiertas
 sin usar la base de datos todo el tiempo, o conexiones abiertas usando
 la base de datos concurrentemente?


Existen varios tipos de clientes:

1.-Los que van a estar agregando la informacion que viene de
diferentes sockets.. por lo  que seria una conexion que se abre y
cierra continuamente... por cada hilo.. ya agrege un pool a mi
programa para evitar estar abriendo tantas conexiones

2.- Un programa que debe consultar la base de datos continuamente..
para saber si se han agregado datos binarios a la BD1, para traducirlo
y expandirlos en campos coherentes de la BD2.. a este programa tambien
le agrege un pool de conexiones aunque no parece necesario ya que casi
siempre va a tener 2 conexiones abiertas uno a BD1 y otra BD2...

3.- Un servidor web con glassfish... que va a ser el k va a recibir la
mayor parte de los clientes.. como el sistema web esta diseñado para
dar seguimiento a una flotilla de autos.. este debe estarse
consultando todo el tiempo... ( claro los usuarios deben actualizar
la pag) si todo sale bien.. pensamos distribuir el sistema a un buen
numero de clientes por lo que debe asegurar que aunque sea un sistema
web.. es posible que tenga muchos clientes haciendo consultas cada
rato...

en general este es el por que de 100 usuarios...



 Unos datos orientativos para empezar, en un servidor dedicado para la
 base de datos, y que por supuesto deberian de ajustarse dependiendo del
 tipo de base de datos que tengas y como se utiliza, son:

 * shared_buffers = 25-30% RAM
 * work_men = [1]512k, [2]2MB, [3]128MB (nunca mas de RAM/num.conexiones)
 * maintenance_work_mem = 1/16 RAM
 * checkpoints_segments = [1]8, [2][3]16-64
 * wal_buffers = [1]1MB, [2][3]8MB
 * effective_cache_size = 2/3 RAM
 * random_page_cost = 2.0

 [1] Aplicacion Web
 [2] Tipica app. OLTP
 [3] Tipica app. datawarehouse



Gracias por los datos.. me dan una idea de como implementar en mi
server.. pero como comentaba al principio... mi sistema operativo
FREEBSD no me deja poner mas de 40 conexiones...  y pues gracias a
Espartano ( nuevamente ) ya cheque la pag del manual... espero que no
me provoque ningun problema.. jejeje.. ultimamente me la he pasado
componiendo cosas que descompuse por componer otras.. ;)...  bueno en
fin gracias por los tips.. y si con la informacion que les pongo me
pueden dar mas consejos se los agradecere...

Saludos

Motum Hesa
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda


[pgsql-es-ayuda] Cambiando parametros del kernel

2009-07-21 Por tema motum hesa
Hola, tengo un servidor con FreeBSD 7.1 ( en un XEON Core 2 Duo, 2GB
en RAM y 150GB en DD)  la configuración de postgresql.conf por default
coloco los siguientes valores:

max_connections = 40
shared_buffers = 24MB
#work_mem = 1MB

como veran la ultima linea esta comentada, la pregunta es.. tengo un
varios programas en JAVA que usan un par de bases de datos de en total
unas 100 tablas, esta previsto que se conecte unos 100 clientes a la
vez, claramente puedo ver que no va a ser soportado, ni aun usando
pool de conexion ya que varias conexiones deben permanecer abiertas y
en pruebas ya he saturado el numero de conexiones ( no se si es el
pgadmin que hay veces que se me cierra en windows y deja las
conexiones abiertas) y pues me gustaria que me recomendaran valores
para estas opciones, cabe mencionar que ya quise cambiarlos y me mando
error.. leyendo en los manuales encontre el siguiente punto:

http://www.postgresql.org/docs/8.4/interactive/kernel-resources.html

El problema es que yo tengo postgresql 8.2.9 y no se si aplique lo que
mencionan de las variables  y semaforos del kernel para esta
version... si es asi que valores recomiendan...


Saludos y gracias de antemano por su ayuda


Motum Hesa
--
TIP 7: no olvides aumentar la configuración del free space map


[pgsql-es-ayuda] PL/JAVA en FreeBSD

2009-07-17 Por tema motum hesa
-- Mensaje reenviado --
De: motum hesa mot...@gmail.com
Fecha: 16 de julio de 2009 20:15
Asunto: Re: [pgsql-es-ayuda] PL/JAVA en FreeBSD
Para: Emanuel Calvo Franco postgres@gmail.com


Bueno... ya logre solucionar mis problemas con pl/java y siguiendo los
paso que realice y con ayuda de un amigo, ahora tengo un link que
explica claramente lo que se debe hacer:

http://www.adempiere.com/index.php/How_To_Run_ADempiere_on_FreeBSD

Asi que espero que les sirva de algo... Saludos



P.D. Gracias Espartano...:p
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envía unregister TuDirecciónDeCorreo a majord...@postgresql.org)


[pgsql-es-ayuda] PL/JAVA en FreeBSD

2009-07-14 Por tema motum hesa
Hola.. despues de un rato de estar intentando he decidido pedir su
ayuda, resulta que tengo que instalar pl/java version 1.4 en freebsd
7.1 pero a la hora de ejecutar el script de install me dice que falta
la libreria libc.so.6 por lo que lei deberia de usar la libc.so.7 pero
pues ya intente de todo.. desde instalar compat6x hasta hacer links
simbolicos.. pero no logro instalar pl/java... tomando en cuenta que
FreeBSD no es propiamente un linux entonces descargue el codigo fuente
para compilarlo pero me manda un error que por el momento estoy
tratando de solucionar, mi pregunta es, alguien a instalado PL/JAVA en
FreeBSD 7.1? si es asi, alguna sugerencia..

Saludos...

Motum Hesa
--
TIP 8: explain analyze es tu amigo


Re: [pgsql-es-ayuda] PL/JAVA en FreeBSD

2009-07-14 Por tema motum hesa
Hola de nuevo:

Agregando información a mi correo anterior, tengo Postgres 8.2.9
instalado, FreeBSD 7.1, diablo-jdk 1.6 y Glib 2.16. creo que eso es
todo lo necesario para que tengan mas claro el problema, si necesitan
mas infor con gusto la agrego.. Saludos

Motum Hesa
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
   http://archives.postgresql.org/pgsql-es-ayuda


[pgsql-es-ayuda] Que es mejor NULL o CERO

2009-06-25 Por tema motum hesa
Tengo una base de datos, que se tiene previsto crecera considerablemente,
para tratar de minimizar el costo en disco duro me gustaria saber si puedo
obetener algun provecho al guardar varios de los datos en null en los campos
numerios en vez de cero. por lo cual la pregunta seria, es mas conveniente
usar null en vez de cero para optimizar la base de datos?


Saludos


Re: [pgsql-es-ayuda] Que es mejor NULL o CERO

2009-06-25 Por tema motum hesa
Muchas gracias a los comentarios de todos, son muy interesantes, ya lei los
links que me mandaron y tomare en cuenta las sugerencias, sin embargo me
asalta otra duda sobre lo mismo,... si declaro un int de 4 bytes y guardo un
0 es seguro que se reservan los 4 bytes.. pero si guardo un null tambien se
reservan los 4 bytes?, saludos y gracias



El 25 de junio de 2009 15:10, Alvaro Herrera alvhe...@alvh.no-ip.orgescribió:

 motum hesa escribió:
  Tengo una base de datos, que se tiene previsto crecera considerablemente,
  para tratar de minimizar el costo en disco duro me gustaria saber si
 [...]

 A todo esto, es bien posible que puedas obtener mejor uso del espacio en
 disco si estudias con cuidado el orden de las columnas para reducir el
 gasto por alineamiento, de haberlo.

 --
 Alvaro Herrera  Developer,
 http://www.PostgreSQL.org/
 El sudor es la mejor cura para un pensamiento enfermo (Bardia)