Re: [pgbr-geral] duvida com indice em campo booleano
Em 19 de setembro de 2014 23:28, Wellington wm...@yahoo.com.br escreveu: Pessoal, em uma tabela foi criado um indice assim: campo = false. Quando eu rodo a consulta selecionando campo is false, o indice nao é utilizado. O indice so é utilizado se seleciono campo = false. Alguem saberia me explicar por que isso acontece ? Esse é um recurso do PostgreSQL chamado índice parcial (ou /partial index/ [1]). Se for utilizar esse recurso, você precisaria criar um índices para os valores false e outro para os valores true. Dependendo do número de registros da tabela, um índice simples (sem a clausula de condição explícita) já é o bastante. Resumindo: ao invés de criar o índice com uma condição (coluna = valor), utilize apenas o nome da coluna. CREATE INDEX indice ON tabela (nome_da_coluna) Dá uma lida na documentação abaixo: [1] http://www.postgresql.org/docs/9.3/static/indexes-expressional.html TIAGO J. ADAMI http://www.adamiworks.com @tiadami ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Backup fisico
Em 19/09/2014 22:54, Danilo Silva danilo.dsg.go...@gmail.com escreveu: Pessoal, Atualmente eu tenho apenas uma database criada, onde foi definida uma tablespace. No caso do backup físico, eu tenho que copiar o $PGDATA + o diretório da tablespace? Sim Como seria o restore desse backup físico? Depende: -se fez este backup com o banco parado, basta inicializar com o pg_ctl apontando para o diretório onde esta o pgdata do backup - se fez o backup a quente (com o banco online), precisar ter configurado o PITR (habilitar arquivamento do wal, pg_start/stop_backup..). Neste caso para restaurar é necessário criar o arquivo recovery.conf no diretorio do pgdata e nele apontar para o diretório onde os wal estão arquivados, por fim iniciar o banco. O pg_basebackup serve também para efetuarmos o backup físico? Sim, e ele ja inclui as tablespaces. Se não conhece muito sobre PITR, recomendo dar uma lida na documentação antes realizar os procedimentos em prod. []s Danilo ___ 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] duvida com indice em campo booleano
2014-09-19 23:28 GMT-03:00 Wellington wm...@yahoo.com.br: em uma tabela foi criado um indice assim: campo = false. Quando eu rodo a consulta selecionando campo is false, o indice nao é utilizado. O indice so é utilizado se seleciono campo = false. Alguem saberia me explicar por que isso acontece ? O operador IS e o operador de igualdade não são equivalentes. O operador de igualdade considera valores iguais mas retorna NULL caso um dos operandos seja NULL, já o IS considera exatamente iguais ignorando valores nulos, como se NULL fosse um terceiro valor possível (e.g. no caso retorna FALSE caso campo seja NULL ou TRUE, e TRUE caso o campo seja FALSE). Para exemplificar, veja: postgres=# SELECT false IS false, null::boolean IS false, false = false, null::boolean = false; ?column? | ?column? | ?column? | ?column? --+--+--+-- t| f| t| (null) (1 row) Para índices parciais, sempre tente casar exatamente igual. Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] duvida com indice em campo booleano
Em 20/09/2014 14:34, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2014-09-19 23:28 GMT-03:00 Wellington wm...@yahoo.com.br: em uma tabela foi criado um indice assim: campo = false. Quando eu rodo a consulta selecionando campo is false, o indice nao é utilizado. O indice so é utilizado se seleciono campo = false. Alguem saberia me explicar por que isso acontece ? O operador IS e o operador de igualdade não são equivalentes. O operador de igualdade considera valores iguais mas retorna NULL caso um dos operandos seja NULL, já o IS considera exatamente iguais ignorando valores nulos, como se NULL fosse um terceiro valor possível (e.g. no caso retorna FALSE caso campo seja NULL ou TRUE, e TRUE caso o campo seja FALSE). Para exemplificar, veja: postgres=# SELECT false IS false, null::boolean IS false, false = false, null::boolean = false; ?column? | ?column? | ?column? | ?column? --+--+--+-- t| f| t| (null) (1 row) Para índices parciais, sempre tente casar exatamente igual. Ops, na ânsia de querer ajudar fiz uma leitura péssima e não percebi a cláusula. Boa explicação, Matheus. --- Tiago J. Adami Sent from GMail ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] duvida com indice em campo booleano
2014-09-20 14:42 GMT-03:00 Tiago José Adami adam...@gmail.com: Ops, na ânsia de querer ajudar fiz uma leitura péssima e não percebi a cláusula. Boa explicação, Matheus. Acontece cara. Tranquilo. :-) Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] importação
Fala Pessoal, Vou precisar fazer uma importação de dados e gostaria de saber uma forma bacana de fazer pelo postgres. O arquivo com dados esta em csv. O que sugerem? Grato! -- Atenciosamente, Felipe Moura Desenvolvedor Web http://about.me/felipewebdf twitter: @felipewebdf talk: felipegu...@gmail.com msn: gu...@hotmail.com (61) 8490-8156 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral