[pgbr-geral] Saber quem esta usando uma tabela

2013-04-01 Por tôpico Marcelo da Silva
Pessoal, as vezes preciso executar alterações numa tabela, e se ele estiver
sendo usada não consigo.

Tem como saber se aquela tabela está sendo usada e por quem (IP por
exemplo) antes de executar a tal alteração ?

É que não posso ficar pedindo pra todos sair do sistema parando a empresa
toda.
Gostaria de minimizar esse problema ao precisar alterar uma tabela não
muito importante. Essa tabela as vezes está sendo usado somente por uma
pessoa.



Marcelo Silva

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


Re: [pgbr-geral] Saber quem esta usando uma tabela

2013-04-01 Por tôpico Dickson S. Guedes
Em 1 de abril de 2013 11:19, Marcelo da Silva marc...@ig.com.br escreveu:
 Pessoal, as vezes preciso executar alterações numa tabela, e se ele estiver
 sendo usada não consigo.

 Tem como saber se aquela tabela está sendo usada e por quem (IP por exemplo)
 antes de executar a tal alteração ?

Sim.

-- 
Dickson S. Guedes
mail/xmpp: gue...@guedesoft.net - skype: guediz
http://github.com/guedes - http://guedesoft.net
http://www.postgresql.org.br
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Saber quem esta usando uma tabela

2013-04-01 Por tôpico Jean Domingues
Em 1 de abril de 2013 11:19, Marcelo da Silva marc...@ig.com.br escreveu:
 Pessoal, as vezes preciso executar alterações numa tabela, e se ele estiver
 sendo usada não consigo.

 Tem como saber se aquela tabela está sendo usada e por quem (IP por exemplo)
 antes de executar a tal alteração ?

Sim.

Por que se dar ao trabalho de dar uma resposta inútil como esta? Espero que 
seja brincadeira.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Saber quem esta usando uma tabela

2013-04-01 Por tôpico Marcelo da Silva
Mesmo que não seja brincadeira, vou considerar que fui muito objetivo na
questão, apesar de citar IP por exemplo, rsrsrs

Estou vendo alguns comandos na web

Será que pode-se fazer assim:

if (tabela em uso)
ignora
ou
altera tabela


Mais ou menos isso que estava pensando



Em 1 de abril de 2013 11:31, Jean Domingues ejdom...@yahoo.com.brescreveu:

 Em 1 de abril de 2013 11:19, Marcelo da Silva marc...@ig.com.br
 escreveu:
  Pessoal, as vezes preciso executar alterações numa tabela, e se ele
 estiver
  sendo usada não consigo.
 
  Tem como saber se aquela tabela está sendo usada e por quem (IP por
 exemplo)
  antes de executar a tal alteração ?
 
 Sim.
 
 Por que se dar ao trabalho de dar uma resposta inútil como esta? Espero
 que seja brincadeira.
 ___
 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] Saber quem esta usando uma tabela

2013-04-01 Por tôpico Dickson S. Guedes
Em 1 de abril de 2013 11:35, Marcelo da Silva marc...@ig.com.br escreveu:
 Mesmo que não seja brincadeira, vou considerar que fui muito objetivo na
 questão, apesar de citar IP por exemplo, rsrsrs

 Estou vendo alguns comandos na web

 Será que pode-se fazer assim:

 if (tabela em uso)
 ignora
 ou
 altera tabela

 Mais ou menos isso que estava pensando

Se você quer saber se é possível, a resposta é sim, mas se você
quer saber como obter isto minha indicação é para que você busque no
catalogo e nas estatísticas do banco pois eles são seus amigos.

Veja pg_class [1], pg_locks [2] e pg_stat_activity [3], juntas você
pode chegar ao que você procura.

[1] http://www.postgresql.org/docs/current/static/catalog-pg-class.html
[2] http://www.postgresql.org/docs/current/static/view-pg-locks.html
[3] 
http://www.postgresql.org/docs/9.2/static/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW

[]s
-- 
Dickson S. Guedes
mail/xmpp: gue...@guedesoft.net - skype: guediz
http://github.com/guedes - http://guedesoft.net
http://www.postgresql.org.br
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Saber quem esta usando uma tabela

2013-04-01 Por tôpico Dickson S. Guedes
Em 1 de abril de 2013 11:31, Jean Domingues ejdom...@yahoo.com.br escreveu:
Em 1 de abril de 2013 11:19, Marcelo da Silva marc...@ig.com.br escreveu:
 Pessoal, as vezes preciso executar alterações numa tabela, e se ele estiver
 sendo usada não consigo.

 Tem como saber se aquela tabela está sendo usada e por quem (IP por exemplo)
 antes de executar a tal alteração ?

Sim.

 Por que se dar ao trabalho de dar uma resposta inútil como esta? Espero que 
 seja brincadeira.

A pergunta foi objetiva, minha resposta também :) (e olha que, por ser
primeiro de Abril, eu poderia ter dito 'não' ;) )

Mas sim, foi uma brincadeira mas com o intuito de obter uma segunda
pergunta, mais elaborada e com um pouco mais de detalhes sobre o que
ele realmente precisa.

[]s
-- 
Dickson S. Guedes
mail/xmpp: gue...@guedesoft.net - skype: guediz
http://github.com/guedes - http://guedesoft.net
http://www.postgresql.org.br
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Saber quem esta usando uma tabela

2013-04-01 Por tôpico Marcelo da Silva
rsrsr, valeu Dickson


Em 1 de abril de 2013 11:49, Dickson S. Guedes lis...@guedesoft.netescreveu:

 Em 1 de abril de 2013 11:31, Jean Domingues ejdom...@yahoo.com.br
 escreveu:
 Em 1 de abril de 2013 11:19, Marcelo da Silva marc...@ig.com.br
 escreveu:
  Pessoal, as vezes preciso executar alterações numa tabela, e se ele
 estiver
  sendo usada não consigo.
 
  Tem como saber se aquela tabela está sendo usada e por quem (IP por
 exemplo)
  antes de executar a tal alteração ?
 
 Sim.
 
  Por que se dar ao trabalho de dar uma resposta inútil como esta? Espero
 que seja brincadeira.

 A pergunta foi objetiva, minha resposta também :) (e olha que, por ser
 primeiro de Abril, eu poderia ter dito 'não' ;) )

 Mas sim, foi uma brincadeira mas com o intuito de obter uma segunda
 pergunta, mais elaborada e com um pouco mais de detalhes sobre o que
 ele realmente precisa.

 []s
 --
 Dickson S. Guedes
 mail/xmpp: gue...@guedesoft.net - skype: guediz
 http://github.com/guedes - http://guedesoft.net
 http://www.postgresql.org.br
 ___
 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] Conversão de DB2 para Postgres

2013-04-01 Por tôpico Osvaldo Kussama
Em 31/03/13, Sanzio Carmosanzio.ca...@gmail.com escreveu:
 Amigos,

 Depois da ajuda de todos, consegui fazer funcionar.

 As explicações me ajudaram a refletir no que eu queria, que era calcular a
 data do ultimo dia  da semana de acordo com o dia informado.



Se quiser determinar a sexta-feira da semana então pode usar algo do tipo:
bdteste=# SELECT CURRENT_DATE, date_trunc('week', CURRENT_DATE),
(date_trunc('week', CURRENT_DATE)+interval '4 days')::date;
date|   date_trunc   |date
++
 2013-04-01 | 2013-04-01 00:00:00-03 | 2013-04-05
(1 row)

Lembrando que a semana vai de segunda a domingo, assim:
bdteste=# SELECT (date_trunc('week', '2013-03-31'::date)+interval '4
days')::date;
date

 2013-03-29
(1 row)

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


[pgbr-geral] Desconsiderar maiúsculo/minúsculo em campos varchar

2013-04-01 Por tôpico izaque Maciel
Boa tarde, alguns dias atrás, precisei que os campos varchar funcionassem
como Case Insensitive, mas tudo que o pessoal me retornou foi algo como:

select upper(c.nome_cli) from clientes c like upper(c.nome_cli), e um outro
usuário me reportou que eu poderia utilizar o tipo de dado CITEXT, que no
delphi não
ficou legal. Foi então que por um acaso procurando uma outra coisa
encontrei este artigo abaixo, caso alguém queira utilizar:

http://www.postgresonline.com/journal/archives/24-Using-MS-Access-with-PostgreSQL.html


   PostgreSQL is case-sensitive

   One of the most annoying things for people coming from a Windows
   environment is that PostgreSQL is case-sensitive whereas MS Access
   in-general is not (except when querying case sensitive databases).
   Explaining this to users and training them on case sensitivity is just a
   lot of hassle, not to mention the time-loss of having to upper case things.
   Hopefully this will change in the future so that PostgreSQL supports
   different collation depending field by field similar to the way SQL Server
   2005 does. Needless to say, when running a query in MS Access, one has
   three options:
   1. Write your query along the lines of *upper(somefield) LIKE
  UCase('abc%')* and make sure you have a functional index on
  upper(somefield)
  2. Use the custom data type such as *citext* which you need to
  compile yourself.
   - or Put functional upper(somefield) indexes on your common fields and
  use the freedom that PostgreSQL gives you to redefine varchar
operators in
  your database by doing the below. NOTE that this gives you the benefit of
  not having to redefine varchar fields as citext or anything like
that thus
  making it more portable to transfer back and forth between non-case
  sensitive dbs or use the same schema as non-case sensitive dbs. Note we
  couldn't do the below with *text* because that is defined high up and
  can not be overwritten. We can overwrite the behavior of varchars however
  because varchars get implicitly cast to text and use the text
operators. By
  using PostgreSQL's operator overload feature, we can define special
  behavior for varchar when used in comparators. When Postgres
sees there is
  such an operator, it will use that instead of cast varchar to text and
  using the default text operators. The downside is that this will not work
  with PostgreSQL text (NOTE: varchar in PostgreSQL/ANSI SQL maps
to text in
  MS Access and text in PostgreSQL/ANSI maps to memo in MS Access
- all very
  confusing) . In most cases this is a non-issue since most
searches are done
  on short Access text fields rather than memo fields. *NOTE: Use with
  caution. We haven't thoroughly tested this technique to catch all the
  possible situations where it can go wrong. It seems to behave correctly
  from our naive tests.*
  - Doing the above allows us to define a query like this in MS Access
  - [image: Case insensitive search] Which yields: [image: Johns and
  Farns]
   -


   CREATE OR REPLACE FUNCTION ci_caseinsmatch(varchar, varchar) RETURNS boolean
   AS $$
  SELECT UPPER($1)::text = UPPER($2)::text;
   $$
   LANGUAGE sql
   IMMUTABLE STRICT;CREATE OPERATOR = (
   PROCEDURE = ci_caseinsmatch,
   LEFTARG = varchar,
   RIGHTARG = varchar,
   COMMUTATOR = =,
   NEGATOR = 
   );CREATE FUNCTION ci_like(varchar, varchar) RETURNS boolean
   AS $$
  SELECT UPPER($1)::text LIKE UPPER($2)::text;
   $$
   LANGUAGE sql;CREATE OPERATOR ~~(
 PROCEDURE = ci_like,
 LEFTARG = varchar,
 RIGHTARG = varchar,
 RESTRICT = likesel,
 JOIN = likejoinsel);   

   And can now be written in SQL even in PgAdmin without all that messy
   upper lower stuff and still uses indexes if you have them defined on say
   upper(first_name) or doing range case-insensitive searches e.g.
   (customer.last_name between 'f' and 'h') :
SELECT customer.*
   FROM customer
   WHERE customer.last_name
Like 'Farns%' OR customer.first_name = 'Jim';
Which will give you all customers with first name Jim or last name like
   Farns. Best of all, if you put in a functional index on last name and first
   name like below, it will use those indexes when doing equality or between
   ranges etc..

   Eu estou utilizando e até o momento está funcionando como eu queria.
   Acho que combinando o Unaccent ele também irá desconsiderar os acentos,
   mas isso não testei ainda.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Configuração max_connections

2013-04-01 Por tôpico Flavio Henrique Araque Gurgel


Em 01-04-2013 15:04, Luiz Carlos L. Nogueira Jr. escreveu:

Pessoal,
Existe alguma forma de saber, dentro de um certo período, o máximo de
conexões que efetivamente estão executando algo simultaneamente?
Quando dou um top aparecem, no máximo,  10 processos do postgres. Isso
quer dizer que, no máximo, tenho 10 processos simultâneos?


As ferramentas do S.O. são uma ótima forma de fazer uma monitoração 
rápida do PostgreSQL.


Considere que, dentre os 10 processos que você viu, alguns são processos 
fixos como o processo pai (antigo postmaster), o autovacuum lancher, o 
stats collector, entre outros.


Pressione a tecla c quando estiver no top para visualizar o comando 
completo.


Os processos conexão do PostgreSQL tem uma estrutura bem definida, 
mais ou menos asim:


postgres: usuario banco_de_dados [IP] comando

Onde comando por ser idle, ou seja, conexão aberta sem fazer nada.

Veja aqui mais informações para a versão 9.2:
http://www.postgresql.org/docs/9.2/static/monitoring-ps.html

[]s

__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos  Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Configuração max_connections

2013-04-01 Por tôpico Leonardo Cezar
2013/4/1 Luiz Carlos L. Nogueira Jr. lcnogueir...@gmail.com

 Pessoal,
 Existe alguma forma de saber, dentro de um certo período, o máximo de
 conexões que efetivamente estão executando algo simultaneamente?


O seguinte comando pode ajudar:

$ TABLE pg_stat_activity;

Quando dou um top aparecem, no máximo,  10 processos do postgres. Isso quer
 dizer que, no máximo, tenho 10 processos simultâneos?


Não, porque existem outros processos de sistema que pertencem ao postgres:
bgwriter, logger, wal writter, vaccuum, checkpoints, ca...

Por exemplo, em meu sistema, um comando como este: top -cu postgres
retornaria 6 processos mesmo com o sistema em idle.

Para acompanhamento periódico/histórico de transações e conexões use o
utilitário pgBadger[1] que gera um relatório completo de transações e
acessos no seu servidor.

Outro tiro-no-pé que pode acontecer – e q não é tão raro assim – é quando
o intrépido analista de negócio e/ou cliente solicita um número máximo de
conexões para estimar crescimento, mas existe um gerenciador de fila
(connection pooling) entre o SGBD e a aplicação. Isto trará números ainda
mais imprecisos visto que conexões do banco podem gerenciar N requisições
da aplicação.

Como regra geral, entenda a arquitetura de seu ambiente.

1) http://dalibo.github.com/pgbadger/

Abraço!

-Leo
-- 
Leonardo Cezar
http://www.postgreslogia http://postgreslogia.wordpress.com.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Consumo alto de memória e CPU

2013-04-01 Por tôpico Flavio Henrique Araque Gurgel


Em 01-04-2013 15:44, Luiz Carlos L. Nogueira Jr. escreveu:

Pessoal,
Tenho essa situação no top, normalmente

top - 15:31:38 up 10 days,  8:13,  4 users,  load average: 8.64, 7.58, 6.75
Tasks: 348 total,  19 running, 329 sleeping,   0 stopped,   0 zombie
Cpu(s): 99.1%us,  0.3%sy,  0.0%ni,  0.3%id,  0.0%wa,  0.0%hi,  0.3%si,
0.0%st
Mem:  20548432k total, 20103744k used,   444688k free,   173956k buffers
Swap:   522104k total,  452k used,   521652k free, 15943964k cached

   PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
  6793 postgres  16   0 4397m 1.4g 1.4g R 63.8  7.2   1:08.78 postgres:
postgres bancox ipX(37472) SELECT
  6812 postgres  16   0 4387m 1.2g 1.1g R 45.6  5.9   0:17.29 postgres:
postgres bancox ipX(37491) SELECT
  6333 postgres  16   0 4409m 1.8g 1.8g R 35.3  9.3   4:34.96 postgres:
postgres bancox ipX(36995) SELECT
  6789 postgres  16   0 4398m 1.5g 1.4g R 35.3  7.4   1:11.10 postgres:
postgres bancox ipX(37468) SELECT
  6796 postgres  16   0 4397m 1.0g 987m R 34.2  5.1   0:31.00 postgres:
postgres bancox ipX(37475) SELECT
  6720 postgres  16   0 4398m 1.5g 1.5g R 31.9  7.7   1:39.07 postgres:
postgres bancox ipX(37400) SELECT
  6797 postgres  16   0 4398m 1.1g 1.1g R 31.9  5.7   0:46.33 postgres:
postgres bancox ipX(37476) SELECT
  6818 postgres  16   0 4391m 1.3g 1.3g R 29.6  6.7   0:20.25 postgres:
postgres bancox ipX(37503) SELECT
  6819 postgres  16   0 4401m 1.5g 1.4g R 29.6  7.4   0:51.29 postgres:
postgres bancox ipX(37504) SELECT
  6583 postgres  15   0 4398m 1.5g 1.5g R 22.8  7.8   5:40.79 postgres:
postgres bancox ipX(37209) SELECT
  6810 postgres  16   0 4387m 1.3g 1.2g R 19.4  6.4   0:18.93 postgres:
postgres bancox ipX(37489) SELECT
  6790 postgres  16   0 4388m 1.0g 1.0g R 13.7  5.1   0:16.35 postgres:
postgres bancox ipX(37469) idle in transaction
  6820 postgres  15   0 4399m 1.4g 1.4g S  4.6  7.1   0:30.27 postgres:
postgres bancox ipX(37507) idle
  6815 postgres  16   0 4401m 1.3g 1.3g R  2.3  6.6   0:29.87 postgres:
postgres bancox ipX(37494) idle in transaction
  6821 postgres  15   0 4397m 1.4g 1.4g S  1.1  7.3   0:44.77 postgres:
postgres bancox ipX(37510) idle in transaction

Temos 4 CPUs, Shared_buffers 4GB, 20 GB de memória (SO) ,max_connections
300 (não foi configurado por nós)
Só que o pool de conexões JBoss pro PG é de mais de 200, mesmo com essa
pouca utilização efetiva de conexões simultãneas

Existe uma degradação muito rápida do ambiente como um todo. Diante disso:
Diminuo o pool de conexões do Jboss?
É normal esse uso acentuado de CPU pra tão poucos processos simultâneos?
Essa memória não diminui  mesmo em horário sem ninguém usar?
O %mem de cada processo não diminui de forma nenhuma?


O valor em shared_buffers é alocado quando o PostgreSQL é inicializado e 
assim permanece, o tempo todo e é uma área única para todos os processos.


Cada processo (conexão), porém, pode usar uma memória própria, 
dependendo da consulta que está fazendo. Vejo que você tem vários SELECT 
no seu top.


Perguntas:
1) Que tipo de SELECT são esses, poucos resultados baseados em índices 
ou grandes massas em seqscans? Tem ORDER BY, GROUP BY ou DISTINCT?


2) Qual o valor configurado em work_mem?
Este valor pode ser usado para cada sub-select numa mesma consulta.

[]s

__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos  Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Desconsiderar maiúsculo/minúsculo em campos varchar

2013-04-01 Por tôpico Leonardo Cezar
On Mon, Apr 1, 2013 at 1:45 PM, izaque Maciel izaquemac...@gmail.comwrote:

 Boa tarde, alguns dias atrás, precisei que os campos varchar funcionassem
 como Case Insensitive, mas tudo que o pessoal me retornou foi algo como:

 select upper(c.nome_cli) from clientes c like upper(c.nome_cli), e um
 outro usuário me reportou que eu poderia utilizar o tipo de dado CITEXT,
 que no delphi não
 ficou legal. Foi então que por um acaso procurando uma outra coisa
 encontrei este artigo abaixo, caso alguém queira utilizar:


corte

O problema de funções e operadores criadas no catálogo são as atualizações
e migrações que além de dramáticas por vezes causam comportamentos
estranhos no otiimizador.


O operador (ILIKE - repare o I no início) parece tão mais simples:

SELECT 'AbC' ILIKE 'abc';

Embora esteja em não-conformidade com o padrão SQL, costuma ser útil,
simples e funcional com a maioria dos ORMs distribuídos para PostgreSQL
seja a linguagem que for.

Abraço!

-Leo
-- 
Leonardo Cezar
http://www.postgreslogia http://postgreslogia.wordpress.com.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Consumo alto de memória e CPU

2013-04-01 Por tôpico Luiz Carlos L. Nogueira Jr.
Flávio,

Teoricamente deveriam ser selects que voltam poucos dados

work_mem 50MB


Como o SO tem 20GB, o PG tem 4GB de shared buffers, em menos de 12 horas a
memória chega nos 20GB e não baixa de forma nenhuma, mesmo sem ninguém usar
o sistema. Essa característica é normal?




Em 1 de abril de 2013 15:48, Flavio Henrique Araque Gurgel 
fla...@4linux.com.br escreveu:


 Em 01-04-2013 15:44, Luiz Carlos L. Nogueira Jr. escreveu:

  Pessoal,
 Tenho essa situação no top, normalmente

 top - 15:31:38 up 10 days,  8:13,  4 users,  load average: 8.64, 7.58,
 6.75
 Tasks: 348 total,  19 running, 329 sleeping,   0 stopped,   0 zombie
 Cpu(s): 99.1%us,  0.3%sy,  0.0%ni,  0.3%id,  0.0%wa,  0.0%hi,  0.3%si,
 0.0%st
 Mem:  20548432k total, 20103744k used,   444688k free,   173956k buffers
 Swap:   522104k total,  452k used,   521652k free, 15943964k cached

PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
   6793 postgres  16   0 4397m 1.4g 1.4g R 63.8  7.2   1:08.78 postgres:
 postgres bancox ipX(37472) SELECT
   6812 postgres  16   0 4387m 1.2g 1.1g R 45.6  5.9   0:17.29 postgres:
 postgres bancox ipX(37491) SELECT
   6333 postgres  16   0 4409m 1.8g 1.8g R 35.3  9.3   4:34.96 postgres:
 postgres bancox ipX(36995) SELECT
   6789 postgres  16   0 4398m 1.5g 1.4g R 35.3  7.4   1:11.10 postgres:
 postgres bancox ipX(37468) SELECT
   6796 postgres  16   0 4397m 1.0g 987m R 34.2  5.1   0:31.00 postgres:
 postgres bancox ipX(37475) SELECT
   6720 postgres  16   0 4398m 1.5g 1.5g R 31.9  7.7   1:39.07 postgres:
 postgres bancox ipX(37400) SELECT
   6797 postgres  16   0 4398m 1.1g 1.1g R 31.9  5.7   0:46.33 postgres:
 postgres bancox ipX(37476) SELECT
   6818 postgres  16   0 4391m 1.3g 1.3g R 29.6  6.7   0:20.25 postgres:
 postgres bancox ipX(37503) SELECT
   6819 postgres  16   0 4401m 1.5g 1.4g R 29.6  7.4   0:51.29 postgres:
 postgres bancox ipX(37504) SELECT
   6583 postgres  15   0 4398m 1.5g 1.5g R 22.8  7.8   5:40.79 postgres:
 postgres bancox ipX(37209) SELECT
   6810 postgres  16   0 4387m 1.3g 1.2g R 19.4  6.4   0:18.93 postgres:
 postgres bancox ipX(37489) SELECT
   6790 postgres  16   0 4388m 1.0g 1.0g R 13.7  5.1   0:16.35 postgres:
 postgres bancox ipX(37469) idle in transaction
   6820 postgres  15   0 4399m 1.4g 1.4g S  4.6  7.1   0:30.27 postgres:
 postgres bancox ipX(37507) idle
   6815 postgres  16   0 4401m 1.3g 1.3g R  2.3  6.6   0:29.87 postgres:
 postgres bancox ipX(37494) idle in transaction
   6821 postgres  15   0 4397m 1.4g 1.4g S  1.1  7.3   0:44.77 postgres:
 postgres bancox ipX(37510) idle in transaction

 Temos 4 CPUs, Shared_buffers 4GB, 20 GB de memória (SO) ,max_connections
 300 (não foi configurado por nós)
 Só que o pool de conexões JBoss pro PG é de mais de 200, mesmo com essa
 pouca utilização efetiva de conexões simultãneas

 Existe uma degradação muito rápida do ambiente como um todo. Diante disso:
 Diminuo o pool de conexões do Jboss?
 É normal esse uso acentuado de CPU pra tão poucos processos simultâneos?
 Essa memória não diminui  mesmo em horário sem ninguém usar?
 O %mem de cada processo não diminui de forma nenhuma?


 O valor em shared_buffers é alocado quando o PostgreSQL é inicializado e
 assim permanece, o tempo todo e é uma área única para todos os processos.

 Cada processo (conexão), porém, pode usar uma memória própria, dependendo
 da consulta que está fazendo. Vejo que você tem vários SELECT no seu top.

 Perguntas:
 1) Que tipo de SELECT são esses, poucos resultados baseados em índices ou
 grandes massas em seqscans? Tem ORDER BY, GROUP BY ou DISTINCT?

 2) Qual o valor configurado em work_mem?
 Este valor pode ser usado para cada sub-select numa mesma consulta.

 []s

 __**
 Flavio Henrique A. Gurgel
 Líder de Projetos Especiais
 Consultoria, Projetos  Treinamentos 4LINUX
 Tel1: +55-11.2125-4747 ou 2125-4748
 www.4linux.com.br
 email: fla...@4linux.com.br
 __
 FREE SOFTWARE SOLUTIONS
 __**_
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.**org.brpgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.**br/cgi-bin/mailman/listinfo/**pgbr-geralhttps://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] Consumo alto de memória e CPU

2013-04-01 Por tôpico Leonardo Cezar
2013/4/1 Luiz Carlos L. Nogueira Jr. lcnogueir...@gmail.com

 Pessoal,
 Tenho essa situação no top, normalmente

 top - 15:31:38 up 10 days,  8:13,  4 users,  load average: 8.64, 7.58, 6.75
 Tasks: 348 total,  19 running, 329 sleeping,   0 stopped,   0 zombie
 Cpu(s): 99.1%us,  0.3%sy,  0.0%ni,  0.3%id,  0.0%wa,  0.0%hi,  0.3%si,
 0.0%st
 Mem:  20548432k total, 20103744k used,   444688k free,   173956k buffers
 Swap:   522104k total,  452k used,   521652k free, 15943964k cached

 Existe uma degradação muito rápida do ambiente como um todo. Diante disso:


Degradação?


 Diminuo o pool de conexões do Jboss?


Não sei.


 É normal esse uso acentuado de CPU pra tão poucos processos simultâneos?


Aperte 1 em seu teclado com estiver rodando o top e apresente o resultado
novamente..


 Essa memória não diminui  mesmo em horário sem ninguém usar?


Clássico... http://www.linuxatemyram.com/


 O %mem de cada processo não diminui de forma nenhuma?


Novamente... http://www.linuxatemyram.com/

Abraço!

-Leo
-- 
Leonardo Cezar
http://www.postgreslogia http://postgreslogia.wordpress.com.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Consumo alto de memória e CPU

2013-04-01 Por tôpico Flavio Henrique Araque Gurgel

A moda do top-post voltou na lista.

Em 01-04-2013 15:58, Luiz Carlos L. Nogueira Jr. escreveu:

Flávio,

Teoricamente deveriam ser selects que voltam poucos dados

work_mem 50MB


Se suas 200 conexões do pool forem abertas e cada uma usar *só* 50MB, 
isso dá 10GB.
Lembrando que consultas complicadas podem usar mais de uma vez isso, 
então, você está com risco um pouco alto de esgotar a memória do seu 
servidor.




Como o SO tem 20GB, o PG tem 4GB de shared buffers, em menos de 12 horas
a memória chega nos 20GB e não baixa de forma nenhuma, mesmo sem ninguém
usar o sistema. Essa característica é normal?


Veja no seu top ou free onde diz:
15943964k cached

Tem 15GB que seu S.O. está usando pra cache de disco.
Isso é normal, esperado e, felizmente, acontece.

Se outros programas precisarem de mais RAM, o S.O. tira daí.
A memória não está livre mas em uso por cache do S.O.
Não há nada de errado em seu PostgreSQL.

[]s

__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos  Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Consumo alto de memória e CPU

2013-04-01 Por tôpico Flavio Henrique Araque Gurgel

Em 01-04-2013 16:02, Leonardo Cezar escreveu:

Essa memória não diminui  mesmo em horário sem ninguém usar?


Clássico... http://www.linuxatemyram.com/

O %mem de cada processo não diminui de forma nenhuma?


Novamente... http://www.linuxatemyram.com/


Léo, se eu conhecesse esse site antes, teria economizado 99,9% de minha 
saliva ao explicar como o Linux usa a memória :D


[]s

__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos  Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Consumo alto de memória e CPU

2013-04-01 Por tôpico Leonardo Cezar
2013/4/1 Flavio Henrique Araque Gurgel fla...@4linux.com.br

 Novamente... http://www.linuxatemyram.com/


 Léo, se eu conhecesse esse site antes, teria economizado 99,9% de minha
 saliva ao explicar como o Linux usa a memória :D


As vezes a FAQ não funciona...

Você fez um resumo daquilo que na verdade 99,9% precisa conhecer ;-D

Abraço!

-Leo
-- 
Leonardo Cezar
http://www.postgreslogia http://postgreslogia.wordpress.com.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Consumo alto de memória e CPU

2013-04-01 Por tôpico Luiz Carlos L. Nogueira Jr.
Valeu pela dica de como é usada  a memória no Linux

Em 1 de abril de 2013 16:14, Leonardo Cezar lhce...@gmail.com escreveu:

 2013/4/1 Flavio Henrique Araque Gurgel fla...@4linux.com.br

 Novamente... http://www.linuxatemyram.com/


 Léo, se eu conhecesse esse site antes, teria economizado 99,9% de minha
 saliva ao explicar como o Linux usa a memória :D


 As vezes a FAQ não funciona...

 Você fez um resumo daquilo que na verdade 99,9% precisa conhecer ;-D

 Abraço!

 -Leo
 --
 Leonardo Cezar
 http://www.postgreslogia http://postgreslogia.wordpress.com.com

 ___
 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] Consumo alto de memória e CPU

2013-04-01 Por tôpico Flavio Henrique Araque Gurgel

Em 01-04-2013 16:14, Leonardo Cezar escreveu:


Novamente... http://www.linuxatemyram.com/


Léo, se eu conhecesse esse site antes, teria economizado 99,9% de
minha saliva ao explicar como o Linux usa a memória :D


As vezes a FAQ não funciona...

Você fez um resumo daquilo que na verdade 99,9% precisa conhecer ;-D


Rapaz, não é só lista. Clientes, colegas, também!

[]s


__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos  Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] RES: descobrir nas System Tables quais tabelas de um schema, utilizam uma certa coluna como FK

2013-04-01 Por tôpico Rodrigo Systemas
Gostaria de cancelar minha assinatura neste grupo...pois me recadastrei com
outro email...

 

Rdrigo

 

De: pgbr-geral [mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome
de Jean Pereira
Enviada em: quinta-feira, 28 de março de 2013 08:18
Para: Comunidade PostgreSQL Brasileira
Assunto: Re: [pgbr-geral] descobrir nas System Tables quais tabelas de um
schema, utilizam uma certa coluna como FK

 

On 03/27/2013 23:44, Marcos Aurelio Nobre wrote: 

sALLdações .

Boa noite. Estou precisando de uma ajuda.

Em um servidor 9.1 tenho três schemas A, B e C

Em A há uma tabela X que tem a coluna C como sua PK

Em B há 30 tabelas que tem C como FK com a DRI : ON UPDATE CASCADE ON DELETE
NO ACTION.

Em C há 400 tabelas e 80% delas tem C como FK, porém sem DRI implementado
nas contraints.

Então eu não gostaria de entrar em cerca de 200 ~ 300 tabelas , excluir as
FK-Constraints que referem-se / mencionam C e recriá-las com a DRI de
update-cascade.

Assim eu vos pergunto:

1) Existe algum commando de DDL tipo ALTER CONSTRAINT . que pudesse
ser aplicado a estas tabela, modificando-lhes ou incorporando-lhes um UPDATE
CASCADE ?

Bom... acho eu que não... mais tem outras pessoas que podem te ajudar
nisso...



 

2) Existe algum SELECT que possa ser aplicado às SYSTEM TABLES de modo que
eu descubra quais tabelas utilizam a coluna C como foreign key ?


Talvez ajude você..

SELECT distinct tc.constraint_name,
tc.constraint_type,
tc.table_schema,
tc.table_name,
kcu.column_name,
tc.is_deferrable,
tc.initially_deferred,
rc.match_option AS match_type,
rc.update_rule AS on_update,
rc.delete_rule AS on_delete,
ccu.table_schema,
ccu.table_name AS references_table,
ccu.column_name AS references_field
FROM information_schema.table_constraints tc
LEFT JOIN information_schema.key_column_usage kcu
ON tc.constraint_catalog = kcu.constraint_catalog
AND tc.constraint_schema = kcu.constraint_schema
AND tc.constraint_name = kcu.constraint_name
LEFT JOIN information_schema.referential_constraints rc
ON tc.constraint_catalog = rc.constraint_catalog
AND tc.constraint_schema = rc.constraint_schema
AND tc.constraint_name = rc.constraint_name
LEFT JOIN information_schema.constraint_column_usage ccu
ON rc.unique_constraint_catalog = ccu.constraint_catalog
AND rc.unique_constraint_schema = ccu.constraint_schema
AND rc.unique_constraint_name = ccu.constraint_name
WHERE lower(tc.constraint_type) in ('foreign key')
AND ccu.table_name = 'nome da tablea que tens a PK'
--AND ccu.column_name = 'campo PK'
--AND kcu.column_name = 'nome do campo nas FK'
order by tc.constraint_name





 

3) Outra variante de consulta e descobrir qual constraint utiliza 

 

Gratos:

MN






___
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] Conversão de DB2 para Postgres

2013-04-01 Por tôpico Sanzio Carmo
Para ficar registrado, a Solução que chegou ao resultado que eu queria foi
essa:

SELECT date(data_processamento + (7 -
   cast(to_char(data_processamento, 'D') as
integer)))
   into :DAT-FIM-SEMANA
 FROM TabProcessamento

Obrigado a Todos que colaboraram.


Em 31 de março de 2013 20:44, Dickson S. Guedes lis...@guedesoft.netescreveu:

 Em 31 de março de 2013 20:24, Sanzio Carmo sanzio.ca...@gmail.com
 escreveu:
  Amigos,
 
  Depois da ajuda de todos, consegui fazer funcionar.
 
  As explicações me ajudaram a refletir no que eu queria, que era calcular
 a
  data do ultimo dia  da semana de acordo com o dia informado.
 
  Fico muito grato a todos.

 Legal!

 Que tal nos mostrar a solução para o seu caso para que o histórico da
 lista possa ser útil para outros que tenham a mesma dúvida que a sua?

 []s
 --
 Dickson S. Guedes
 mail/xmpp: gue...@guedesoft.net - skype: guediz
 http://github.com/guedes - http://guedesoft.net
 http://www.postgresql.org.br
 ___
 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