[pgbr-geral] update com trigger

2011-11-12 Por tôpico Pedro Costa
Olá pessoal,

Queria colocar a seguinte dúvida, eu quero criar uma trigger que execute 
sempre que são inseridos novos registos numa tabela. A função desta será 
executar um update preenchendo dois campos com base em distâncias 
(st_distance). A minha dúvida é o seguinte, quando o update for 
executado vai ser sempre sobre todos os registos da tabela ou apenas dos 
criados naquele momento?

Obrigado

-- 
Com os melhores cumprimentos,

Pedro Costa
Geógrafo
Especializado em Sistemas de Informação Geográfica e Ordenamento do Território


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Brutal queda de performance atualizando de 8.2 para 8.4

2011-11-12 Por tôpico Eduardo Santos
Pessoal,

Estava com alguns problemas de lock e decidi atualizar minha versão do
PostgreSQL da 8.2 para a 8.4, onde muitos avanços foram feitos nesse campo.
Contudo, para minha surpresa, a performance caiu drasticamente. O curioso é
que as máquinas físicas são idênticas fisicamente e mantive exatamente os
mesmos parâmetros de configuração para o PostgreSQL. Para se ter uma ideia
da queda, vou mostrar a saída do EXPLAIN ANALYZE para a mesma consulta nos
diferentes bancos.

*Consulta no PostgreSQL 8.2*

 Sort  (cost=1029.63..1029.71 rows=33 width=42) (actual
time=3895.353..3895.361 rows=67 loops=1)
   Sort Key:
acs_object__name(apm_package__parent_id(public.forums_forums.package_id)),
public.forums_forums.name
   -  Nested Loop  (cost=39.87..1028.80 rows=33 width=42) (actual
time=743.868..3832.291 rows=67 loops=1)
 -  Bitmap Heap Scan on forums_forums  (cost=39.87..464.01 rows=33
width=42) (actual time=260.795..1754.423 rows=67 loops=1)
   Recheck Cond: ((package_id = ANY
('{0,840191,1486834,626929,520062,1101742,1160464,1161067,2750196,3500360,133998,3673774,3676596,368
6932,4860207,5986896,10050612,10157702,4645,93855,3186091,601355,22297512,6552691,21650654,8265465,23731964,33752302,15316177}'::integer[]))
AND (en
abled_p = 't'::bpchar))
   Filter: (subplan)
   -  Bitmap Index Scan on forums_forums_pkg_enable_idx
 (cost=0.00..39.86 rows=66 width=0) (actual time=56.270..56.270 rows=191
loops=
1)
 Index Cond: ((package_id = ANY
('{0,840191,1486834,626929,520062,1101742,1160464,1161067,2750196,3500360,133998,3673774,3676596
,3686932,4860207,5986896,10050612,10157702,4645,93855,3186091,601355,22297512,6552691,21650654,8265465,23731964,33752302,15316177}'::integer[]))
AND
 (enabled_p = 't'::bpchar))
   SubPlan
 -  Nested Loop  (cost=0.00..21724.67 rows=4088 width=0)
(actual time=25.336..25.336 rows=1 loops=67)
   -  Nested Loop  (cost=0.00..14348.63 rows=9292
width=4) (actual time=16.059..17.942 rows=12 loops=67)
 Join Filter: ((pdm.privilege)::text =
(p.privilege)::text)
 -  Seq Scan on acs_privilege_descendant_map
pdm  (cost=0.00..9.23 rows=4 width=16) (actual time=0.103..0.103 rows=1 lo
ops=67)
   Filter: ((descendant)::text =
'read_private_data'::text)
 -  Nested Loop  (cost=0.00..3038.60
rows=43700 width=17) (actual time=15.022..17.830 rows=16 loops=67)
   -  Index Scan using
acs_obj_ctx_idx_object_id_idx on acs_object_context_index c
 (cost=0.00..17.37 rows=48 width
=4) (actual time=10.316..11.088 rows=3 loops=67)
 Index Cond: (object_id = $0)
   -  Index Scan using
acs_permissions_object_id_idx on acs_permissions p  (cost=0.00..62.32
rows=50 width=21) (actual time=1.726..1.995 rows=5 loops=226)
 Index Cond: (c.ancestor_id =
p.object_id)
   -  Index Scan using party_approved_member_map_pk on
party_approved_member_map pamm  (cost=0.00..0.78 rows=1 width=4) (actual
time=0.637..0.637 rows=0 loops=776)
 Index Cond: ((pamm.party_id = p.grantee_id)
AND (pamm.member_id = 3443))
 -  Index Scan using acs_objects_pk on acs_objects
 (cost=0.00..8.82 rows=1 width=4) (actual time=16.205..16.207 rows=1
loops=67)
   Index Cond: (acs_objects.object_id =
public.forums_forums.forum_id)
 SubPlan
   -  Index Scan using site_nodes_object_id_idx on site_nodes
 (cost=0.00..8.27 rows=1 width=4) (actual time=0.581..0.582 rows=1 loops=67)
 Index Cond: (object_id = $0)
 Total runtime: *3895.939* ms
(27 registros)


*Consulta no PostgreSQL 8.4*
*
*
 Sort  (cost=3616469.97..3616470.15 rows=72 width=39) (actual
time=95704.475..95704.486 rows=67 loops=1)
   Sort Key:
(acs_object__name(apm_package__parent_id(public.forums_forums.package_id))),
public.forums_forums.name
   Sort Method:  quicksort  Memory: 35kB
   -  Nested Loop Semi Join  (cost=0.00..3616467.75 rows=72 width=39)
(actual time=196.064..95703.983 rows=67 loops=1)
 Join Filter: (public.forums_forums.package_id = c.object_id)
 -  Nested Loop  (cost=0.00..663.18 rows=72 width=39) (actual
time=0.042..2.175 rows=67 loops=1)
   -  Seq Scan on forums_forums  (cost=0.00..31.16 rows=72
width=39) (actual time=0.017..0.899 rows=67 loops=1)
 Filter: ((enabled_p = 't'::bpchar) AND (package_id =
ANY
('{0,840191,1486834,626929,520062,1101742,1160464,1161067,2750196,3500360,133998,3673774,3676596,3686932,4860207,5986896,10050612,10157702,4645,93855,3186091,601355,22297512,6552691,21650654,8265465,23731964,33752302,15316177}'::integer[])))
   -  Index Scan using acs_objects_pk on acs_objects
 (cost=0.00..8.77 rows=1 width=4) (actual time=0.014..0.016 rows=1 loops=67)

Re: [pgbr-geral] update com trigger

2011-11-12 Por tôpico Leandro Guimarães Faria Corcete DUTRA
Le 2011-N-12  11h18, Pedro Costa a écrit :

 A minha dúvida é o seguinte, quando o update for
 executado vai ser sempre sobre todos os registos da tabela ou apenas dos
 criados naquele momento?

Depende de como o codificares!  Já viste os exemplos no manual?


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Brutal queda de performance atualizando de 8.2 para 8.4

2011-11-12 Por tôpico Leandro Guimarães Faria Corcete DUTRA
Le 2011-N-12  11h38, Eduardo Santos a écrit :

 Estava com alguns problemas de lock

Que problemas?  Normalmente, a questão não é versão mas programação do 
aplicativo…



 decidi atualizar minha versão do PostgreSQL da 8.2 para a 8.4

Por que para uma versão tão antiga?  Já estamos na 9.1, que avançou bem 
mais em relação à 8.4 que a 8.4 em relação à 8.2.


 Contudo, para minha surpresa, a performance caiu drasticamente. O
 curioso é que as máquinas físicas são idênticas fisicamente e mantive
 exatamente os mesmos parâmetros de configuração para o PostgreSQL.

Essas não são as únicas variáveis.  Só de cabeça, sem gastar muito 
fosfato, vêm sistema operacional, sistemas de arquivos e configuração 
dos mesmos; e coleta de estatísticas.

Como os planos de execução foram bem diferentes, eu apostaria em 
diferenças ou na estrutura dos dados; ou no texto da consulta; ou na 
massa de dados; ou na configuração do PostgreSQL ou na coleta de 
estatísticas, todos pontos a verificar urgentemente, e informar aqui.


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Brutal queda de performance atualizando de 8.2 para 8.4

2011-11-12 Por tôpico Eduardo Santos
Olá Dutra,

Obrigado pela resposta. Seguem comentários.

Em 12 de novembro de 2011 12:14, Leandro Guimarães Faria Corcete DUTRA 
l...@dutras.org escreveu:

 Le 2011-N-12  11h38, Eduardo Santos a écrit :


 Estava com alguns problemas de lock


 Que problemas?  Normalmente, a questão não é versão mas programação do
 aplicativo…


É um problema que até a versão 8.1 gerava deadlock no PostgreSQL: uma
função PL/pgSQL, chamada em uma transação, que chama uma outra função
PL/pgSQL em outra transação. Um ciclo de 5 ou 6 funções chamadas dentro de
transações. O problema maior não é esse, contudo. A questão é que a
sequência de funções pode ser chamada várias vezes dentro da aplicação.
Assim, enquanto a tabela está sendo chamada por uma consulta, ela está
travada pela transação. No meio disso tudo, existe uma outra chamada para a
transação, que só vai ser executada após a primeira trava ser liberada.

Difícil de explicar dada a complexidade da chamada, mas o fato é que temos
muitos locks em sequência da mesa linha na mesma tabela. Como essa é a
parte que mais evoluiu, achei quem um upgrade ia me ajudar.

Sim, o aplicativo poderia realizar uma chamada mais atômica de uma única
função PL/pgSQL e resolver o problema, mas estou adiando isso até não ter
mais jeito. O trabalho de reescrita seria simplesmente construir o sistema
novamente, e não posso me dar a esse luxo enquanto o sistema está lento
para os usuários.




  decidi atualizar minha versão do PostgreSQL da 8.2 para a 8.4


 Por que para uma versão tão antiga?  Já estamos na 9.1, que avançou bem
 mais em relação à 8.4 que a 8.4 em relação à 8.2.


Problemas de retro-compatibilidade que ainda não tive tempo de resolver.
Como removeram as cláusulas add_missing_from e regex_flavour na versão 9.0,
ainda não posso atualizar. Também é algo que pode ser resolvido, com tempo
que ainda não tenho. A ideia era resolver após o sistema ficar mais rápido.



  Contudo, para minha surpresa, a performance caiu drasticamente. O
 curioso é que as máquinas físicas são idênticas fisicamente e mantive
 exatamente os mesmos parâmetros de configuração para o PostgreSQL.


 Essas não são as únicas variáveis.  Só de cabeça, sem gastar muito
 fosfato, vêm sistema operacional, sistemas de arquivos e configuração dos
 mesmos; e coleta de estatísticas.


Essa é a questão: as máquinas são fisicamente iguais, com os mesmos
softwares instalados e mesmas configurações de SO. Fiz questão de checar
duas vezes para garantir um ambiente replicado. Até o disco é o mesmo.



Como os planos de execução foram bem diferentes, eu apostaria em
 diferenças ou na estrutura dos dados; ou no texto da consulta; ou na massa
 de dados; ou na configuração do PostgreSQL ou na coleta de estatísticas,
 todos pontos a verificar urgentemente, e informar aqui.


Essa foi a ideia que eu tive. Me parece que houve muitas mudanças no
otimizados. Consegui achar duas referências:

http://postgresql.1045698.n5.nabble.com/query-taking-much-longer-since-Postgres-8-4-upgrade-td3787736.html
http://postgresql.1045698.n5.nabble.com/A-query-become-very-slow-after-upgrade-from-8-1-10-to-8-4-5-td3246107.html

Nenhuma das duas foi conclusiva, contudo. O fato é que o otimizador escolhe
um nested loop com um semi join na versão do 8.4, enquanto no 8.1 a opção
escolhida é primeiro ordenar utilizando um bitmap heap scan. Infelizmente
meus conhecimentos de otimização do otimizador (desculpe o pleonasmo) não
me permitiram resolver o problema ainda. Alguma ajuda com dicas de
configuração seria bem-vinda.

Mais uma vez, obrigado pela resposta em pleno Sabadão! :)


-- 
Eduardo Santos
Analista de Sistemas

http://eduardosan.wordpress.com
http://twitter.com/eduardosan
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Brutal queda de performance atualizando de 8.2 para 8.4

2011-11-12 Por tôpico Osvaldo Kussama
2011/11/12 Eduardo Santos eduardo.edusan...@gmail.com:
 Pessoal,
 Estava com alguns problemas de lock e decidi atualizar minha versão do
 PostgreSQL da 8.2 para a 8.4, onde muitos avanços foram feitos nesse campo.
 Contudo, para minha surpresa, a performance caiu drasticamente. O curioso é
 que as máquinas físicas são idênticas fisicamente e mantive exatamente os
 mesmos parâmetros de configuração para o PostgreSQL. Para se ter uma ideia
 da queda, vou mostrar a saída do EXPLAIN ANALYZE para a mesma consulta nos
 diferentes bancos.
 Consulta no PostgreSQL 8.2
  Sort  (cost=1029.63..1029.71 rows=33 width=42) (actual
 time=3895.353..3895.361 rows=67 loops=1)
 corte
,/corte
  Total runtime: 3895.939 ms
 (27 registros)

 Consulta no PostgreSQL 8.4
  Sort  (cost=3616469.97..3616470.15 rows=72 width=39) (actual
 time=95704.475..95704.486 rows=67 loops=1)
corte
/corte
  Total runtime: 95704.632 ms
 (26 registros)

 As diferenças entre as decisões tomadas pelo otimizador são tão absurdas que
 não sei nem por onde começar.
 Será que alguém pode me dar uma luz?
 --


Pelos números apresentados tudo indica que suas estatísticas estavam
atualizadas o que levou o planejador a optar por caminhos
ineficientes.
Veja por exemplo:

Nested Loop  (cost=0.00..982907.73 rows=397639583 width=4) (actual
time=0.102..1117.157 rows=1396734 loops=67)

ele estimou que existiriam 397.639.583 linhas quando, na realidade,
existiam 1.396.734 linhas.

Rode novamente sua consulta com as estatísticas atualizadas e avalie o
resultado.

A versão que você está utilizando é a 8.4.9?

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Brutal queda de performance atualizando de 8.2 para 8.4

2011-11-12 Por tôpico Eduardo Santos
Olá Osvaldo,

Obrigado pela resposta. Seguem comentários:


 Pelos números apresentados tudo indica que suas estatísticas estavam
 atualizadas o que levou o planejador a optar por caminhos
 ineficientes.
 Veja por exemplo:

 Nested Loop  (cost=0.00..982907.73 rows=397639583 width=4) (actual
 time=0.102..1117.157 rows=1396734 loops=67)

 ele estimou que existiriam 397.639.583 linhas quando, na realidade,
 existiam 1.396.734 linhas.

 Rode novamente sua consulta com as estatísticas atualizadas e avalie o
 resultado.

 A versão que você está utilizando é a 8.4.9?



Eu executei o vacuum full com analyze, rodei novamente a consulta e não
obtive resultados muito diferentes. A versão é a 8.4.9 sim. Seria
necessário executar o vacuum mesmo com o autovacuum ligado?

Também não entendi como ele conseguiu ter resultados tão diferentes entre
duas versão do PostgreSQL, mas aconteceu.


Euler,

Seguem respostas:

8.4.oque?


8.4.9


  Você executou a EXPLAIN ANALYZE várias vezes para se certificar de
 que a diferença de tempo não é por causa de uma partida a frio da versão
 8.4?


Sim, essa foi a primeira coisa que pensei. Executei várias vezes e os
resultados não mudam muito.



 Qual é a consulta?



Desculpe, esqueci de anexar a consulta. É uma consulta realmente feia, mas
que não chegava a ser um desastre no banco:


select forums_forums.package_id,
  acs_object__name(apm_package__parent_id(forums_forums.package_id))
as parent_name,
  (select site_node__url(site_nodes.node_id)
  from site_nodes
  where site_nodes.object_id = forums_forums.package_id) as url,
  forums_forums.forum_id,
  forums_forums.name,

case when last_post  (cast(current_timestamp as date)- 1) then 't'
else 'f' end as new_p

  from forums_forums_enabled forums_forums,
  acs_objects
  where acs_objects.object_id = forums_forums.forum_id and
  forums_forums.package_id in
(0,840191,1486834,626929,520062,1101742,1160464,1161067,2750196,3500360,133998,3673774,3676596,3686932,4860207,5986896,10050612,10157702,4645,93855,3186091,601355,22297512,6552691,21650654,8265465,23731964,33752302,15316177)

  and exists (
  select 1
  from acs_object_party_privilege_map ppm
  where ppm.object_id = forums_forums.package_id
and ppm.party_id = '3443'
and ppm.privilege = 'read_private_data'
  )

   order by parent_name,
   forums_forums.name


Uma das coisas que me chamaram atenção foi a estimativa do índice
 acs_obj_ctx_idx_ancestor_idx. Qual a definição da tabela
 acs_object_context_index?


A definição é a seguinte:

Tabela public.acs_object_context_index
Coluna |  Tipo   | Modificadores
---+-+---
 object_id | integer | não nulo
 ancestor_id   | integer | não nulo
 n_generations | integer | não nulo
Índices:
acs_object_context_index_pk PRIMARY KEY, btree (object_id,
ancestor_id)
acs_obj_ctx_idx_ancestor_idx btree (ancestor_id)
acs_obj_ctx_idx_object_id_idx btree (object_id)
Restrições de verificação:
acs_obj_context_idx_n_gen_ck CHECK (n_generations = 0)
Restrições de chave estrangeira:
acs_obj_context_idx_anc_id_fk FOREIGN KEY (ancestor_id) REFERENCES
acs_objects(object_id)
acs_obj_context_idx_obj_id_fk FOREIGN KEY (object_id) REFERENCES
acs_objects(object_id)


Ela funciona como uma tabela intermediária para facilitar a contagem da
quantidade de filhos que determinado objeto tem. É uma tentativa de evitar
a contagem num subselect,  o que tornaria a consulta ainda mais lenta.

Sabe me dizer se houve alguma mudança significativa no otimizados entre as
versões 8.2 e 8.4?

-- 
Eduardo Santos
Analista de Sistemas

http://eduardosan.wordpress.com
http://twitter.com/eduardosan
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Brutal queda de performance atualizando de 8.2 para 8.4

2011-11-12 Por tôpico Euler Taveira de Oliveira
On 12-11-2011 13:05, Eduardo Santos wrote:
 Desculpe, esqueci de anexar a consulta. É uma consulta realmente feia, mas que
 não chegava a ser um desastre no banco:
 
Um comentário: o PostgreSQL não se dá muito bem com listas grandes no IN. Os
valores vem de outra consulta, se sim, talvez seja prudente substituir esses
valores por uma junção.

 Tabela public.acs_object_context_index
 
Parece-me que está tabela e/ou índice acs_obj_ctx_idx_ancestor_idx está(ão)
inchado(s). Faça um VACUUM nessa tabela e um REINDEX no índice mencionado.
Verifique se o plano muda.

 
 Ela funciona como uma tabela intermediária para facilitar a contagem da
 quantidade de filhos que determinado objeto tem. É uma tentativa de evitar a
 contagem num subselect,  o que tornaria a consulta ainda mais lenta.
 
Você chegou a testar essa estratégia? Otimização precoce pode ser pior que
nenhuma otimização.

 Sabe me dizer se houve alguma mudança significativa no otimizados entre as
 versões 8.2 e 8.4?
 
Várias mudanças. Vide notas de lançamento da 8.3 e 8.4.

Outra coisa que notei foi que a cardinalidade (aka número de tuplas) das
tabelas envolvidas parece ter tamanho diferentes entre as versões. Os bancos
de dados são idênticos?

Teste as várias estratégias apontadas e apresente os novos planos de consulta.


-- 
   Euler Taveira de Oliveira - Timbira   http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Postgres Embarcado Existe?

2011-11-12 Por tôpico Marcelo Silva (IG)
Pessoal, pensa no seguinte...
Você dá um CD com seu aplicativo a uma pessoa.
Você não vai estar lá pra instalar pra ele, e ele não sabe nada de 
instalação, principalmente de postgres.
Por isso a necessidade de enviar um CD com uma instalação totalmente 
automatica.
Meu aplicativo consigo fazer com InnoSetup, mas o Postgres ainda estou 
estudando pra ver se é possivel.
Só isso.
Não é nada de outro mundo, é porque eu gosto do Postgres, acho que seria 
ótimo usa-lo em aplicações de pequenissimo porte (desktop) mas gostaria que 
isso fosse transparente ao usuario.
Já peguei algumas aplicações em CD com Delphi e MySQL, e achei que poderia 
fazer o mesmo com postgres, já que o adotei como meu banco padrão.


é isso :)

Mas as questões postadas são interessante :)



-Mensagem Original- 
From: Bruno Silva
Sent: Friday, November 11, 2011 11:22 AM
To: Comunidade PostgreSQL Brasileira
Subject: Re: [pgbr-geral] Postgres Embarcado Existe?

 Ainda não entendi porque você precisa embarcar o Postgres, você vai
 usar o aplicativo em terminais diferentes e ter bases descentralizadas?
 Só quer fazer um instalador silencioso? É um hardware diferente ou são
 terminais normais?

Bem observado, por que embarcado mesmo?
Se não me engano a instalação do Postgres (for Window$) permite fazer
no modo silencioso.

Bruno E. A. Silva.
Analista de Sistemas.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] neofito em postgis solicita ajuda para começar os trabalhos

2011-11-12 Por tôpico Luis Fernando Bueno
Pode contar com minha ajuda. Também atuo neste universo de Geoprocessamento
com PostGIS.
Não sei muito, mas posso colaborar.


Luis Fernando

Em 11 de novembro de 2011 22:20, antonio borba
antonio.borba2...@gmail.comescreveu:

 Bom, como disse sou neófito nesse terreno, chaves naturais?, não suporta
 unicidade?, vou ficando com vcs para aprender. Quanto a natureza do
 trabalho, é o seguinte, trabalho com geoprocessamento a um bom tempo, mas
 sempre usuário de ferramentas para georreferenciamento, análise de imagens
 ... essas coisas. estou querendo adentrar a área de modelagem e
 implementação de sistema para gerenciamento de bases de dados geográficas
 no intuito de realizar a gestão de políticas voltadas para agricultura
 familiar, com os enfoques socioeconômicos e ambiental utilizando
 Postgresql+postgis+gvSIG, de forma a permitir a qualificação do
 gerenciamento da informação, do planejamento e tomada de decisão. Mas
 voltando pra terra do binário,estou agora buscando instalar o
 Postgresql+postgis no ubuntu, em casa, para poder brincar, inicialmente,
 com modelagem usando brmodelo, se não me engano é o nome do programa, e
 entender, estudar o postgre etc... Esse é o desafio e estou contando com a
 comunidade.

 Antonio

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral