Fernando, apenas para não existir erros de interpretação, pois relendo agora
a frase eu mesmo demorei a compreender o que escrevi. Faltou pontuação na
mesma... rss
Com a pontuação adequada ficaria:
Concordo com o que o Euler colocou sobre a quantidade excessiva de índices.
Uma vez que o SGBD não
OLá Charly,
Me corrija se estiver errado, de acordo com o que você escreveu não importa
se eu tenho 1 ou 50 indices em uma tabela, pois quando faço uma consulta ao
banco o SGBD utiliza muito poucos indices para realiza-la.
certo?
abraços, obrigado pela ajuda.
2009/10/5 Charly Frankl
Charly Frankl escreveu:
Resumindo, a cada consulta o SGBD elege APENAS UM índice da entidade
para ser utilizado na consulta.
É claro que não. O SGBD pode escolher quantos índices quiser; isso vai
depender da consulta que você está executando.
--
Euler Taveira de Oliveira
2009/10/5 Euler Taveira de Oliveira eu...@timbira.com
É claro que não. O SGBD pode escolher quantos índices quiser; isso vai
depender da consulta que você está executando.
Mas isso é válido se o enable_bitmapscan estiver habilitado, porque se
estiver desligado o planejador vai usar (ou não)
Fabrízio de Royes Mello escreveu:
2009/10/5 Euler Taveira de Oliveira eu...@timbira.com
mailto:eu...@timbira.com
É claro que não. O SGBD pode escolher quantos índices quiser; isso vai
depender da consulta que você está executando.
Mas isso é válido se o enable_bitmapscan estiver
2009/10/5 Euler Taveira de Oliveira eu...@timbira.com
Como eu disse anteriormente, o planejador pode produzir um plano que
utiliza
mais do que um índice por tabela. Por exemplo, em junções com a mesma
tabela e
quando a tabela aparece em mais de um nó no plano de execução.
Tranquilo...
Charly,
É por ai mesmo. Na verdade, você pode ter os 50 índices na tua tabela,
mas
quando for consultá-la o SGBD vai eleger UM índice a ser utilizado para a
consulta. Logo, ter 50 índices não é garantia de melhoria na performance
da
pesquisa, mas alguns índices bem planejados vão com certeza
De fato, nas versões apartir da 8.2 (se nao me engano) o postgresql consegue
simular um indice bitmap em memória, mas como disposto também em [1]:
A condição pode ser dividida em n utilizações separadas de um índice sobre
uma condição where. Depois é verificado o operador. Depois de os resultados
Fabrízio de Royes Mello escreveu:
Tranquilo... isso eu sabia... mas no mesmo nó somente com o bitmapscan
para utilizar mais de um índice né?
Não, com os algoritmos de junção podemos ter buscas em vários índices
simultaneamente também.
--
Euler Taveira de Oliveira
http://www.timbira.com/
Mozart, boa tarde... Acho que não entendeu bem quando eu usei o termo
apenas um índice por tabela.
Como pode ver, o otimizador notou, pela distribuição dos dados, que
compensa
usar um índice diferente para cada citação da tabela dentro da mesma
consulta (i1tbcidade e a1tbcidade).
Como você
Andre Fernandes,
Antes de mais nada, sr. Mozart, peço que o tom nestas mensagens que tens
enviado seja menos agressivo.
Sr. Andre, o tom dos meus comentários está compatível com o dos meus
críticos.
Quanto a ter mais de 10 registros, isso para um banco de dados não é
muita coisa.
Tarcísio,
1 para escrever no log.
32 outros arquivos sendo um para cada índice.
1 para a tabela.
Isso o Euler já explicou, leia com atenção minha mensagem sobre essa conta
para entender o que eu questionei.
Mozart, a única *coisa estranha* que *eu* vejo é a necessidade de
usar 44 índices.
Euler,
Você *não* mostrou essa tal tabela, os índices dela e, o mais importante,
as
estatísticas de uso desses índices.
(...)
Ugh? Como vou supor algo que _não_ vi?
Ah, que bom que notou.
http://listas.postgresql.org.br/pipermail/pgbr-geral/2009-October/017617.html
Ainda acha que tem algo
Euler,
Mozart Hasse escreveu:
Euler escreveu:
Você está querendo ter mais do que 32 índices em uma tabela? Há algo
errado
com o seu modelo de dados, não?
Ué, errado por quê?!
Simplesmente porque atualizar um registro implica em atualizar pelo menos 1
+
32 + 1 arquivos. Isso é
Antes de mais nada, sr. Mozart, peço que o tom nestas mensagens que tens
enviado seja menos agressivo. Não estamos aqui na lista para ler emails
agressivos.
Quanto a ter mais de 10 registros, isso para um banco de dados não é
muita coisa. Não conheço teu aplicativo para dizer se realmente há
2009/10/2 Mozart Hasse mozart.ha...@usa.net:
Como assim pelo menos 1+32+1?! Tem certeza que o Postgres ainda é tão
simplório?!
1 + 32 + 1.
1 para escrever no log.
32 outros arquivos sendo um para cada índice.
1 para a tabela.
--
Mozart, a única *coisa estranha*
Mozart Hasse escreveu:
Como assim pelo menos 1+32+1?! Tem certeza que o Postgres ainda é tão
simplório?! O Oracle e SQL Server por exemplo só tocam num índice se a
atualização se referir a campos pertencentes a ele.
O PostgreSQL também (vide HOT) mas como *não* sei a que versão se refere
Senhores, boa noite...
Vou entrar na conversa também.
Com relação a índices, sempre é um assunto polêmico, mas muito interessante,
e de extrema importância no nosso trabalho.
Bem, não conheço a aplicação em questão, logo o que eu falar aqui será com
base em conceitos e boas práticas relacionadas
Olá pessoal, refiz tudo novamente mais sem sucesso... editei o config_manual
pra 64, mas continua na mesma.
2009/10/1 Tarcísio Sassara sassara.tarci...@gmail.com
2009/10/1 Fernando Maia maia...@gmail.com:
esse DW é um trabalho da universidade, minha tutora ensiste em dizer que
a
fato deve
Fernando Maia escreveu:
Olá pessoal, refiz tudo novamente mais sem sucesso... editei o
config_manual pra 64, mas continua na mesma.
Você verificou o caminho dos binários do PostgreSQL? Você verificou o caminho
do $PGDATA? Pelo menos um dos dois devem estar apontando para o local errado.
--
Ué,
Fernando Maia escreveu:
Gostaria de pedir a ajuda de vocês, estou precisando aumentar o meu
número de indices por tabela, que por default aceita no máximo 32
indexações.
Meu recorde é 44 índices numa tabela com 89 campos e 20 FKs, isso porque as
outras 40 colunas menos usadas já foram
Oi Fernando,
2009/10/1 Fernando Maia maiaapc em gmail.com:
Em um DW eu coloco na tabela fato as chaves estrangeiras de cada
dimensão e coloco apenas um índice contendo todas estas chaves.
Conceitualmente correto *s*e* não houver dependências funcionais entre as
chaves.
Se houver, ou seja, de
Mozart Hasse escreveu:
Euler escreveu:
Você está querendo ter mais do que 32 índices em uma tabela? Há algo
errado
com o seu modelo de dados, não?
Ué, errado por quê?!
Simplesmente porque atualizar um registro implica em atualizar pelo menos 1 +
32 + 1 arquivos. Isso é uma operação muito
Olá pessoal,
Gostaria de pedir a ajuda de vocês, estou precisando aumentar o meu número
de indices por tabela, que por default aceita no máximo 32 indexações.
Obrigado pela atenção e aguardo dicas.
vlw
--
Fernando Maia
Acadêmico Sistemas de Informação-CPCX-UFMS
msn: maia_...@hotmail.com
email:
Fernando Maia escreveu:
Gostaria de pedir a ajuda de vocês, estou precisando aumentar o meu
número de indices por tabela, que por default aceita no máximo 32
indexações.
Você está querendo ter mais do que 32 índices em uma tabela? Há algo errado
com o seu modelo de dados, não?
Em todo caso,
Olá Euler, a resposta é sim preciso de mais de 32 indices em uma tabela, no
caso estou desenvolvendo um data warehouse, e minha tabela fato tera mais de
32 dimensões, o por isso de fazer essa modificação.
Eu sei dessa alteração no pg_config_manual.h, mas não sei se fiz certo... o
que eu fiz foi o
2009/9/30 Fernando Maia maia...@gmail.com:
Eu sei dessa alteração no pg_config_manual.h, mas não sei se fiz certo... o
que eu fiz foi o seguinte: baixei o postgres.tar.gz alterei o
pg_config_manual.h e compilei e instalei o postgres... mas não resolveu meu
problema.
Então colega, se você
Tarcísio Sassara escreveu:
Os comandos abaixo para criar uma tabela e um índice com 40 colunas deu certo:
Ele não quer criar um índice de 40 colunas e sim 40 índices em uma tabela.
--
Euler Taveira de Oliveira
http://www.timbira.com/
___
exato... na realidade preciso fazer isso:
create table fato(
coluna01 integer,
coluna02 integer,
coluna03 integer,
.
.
.
coluna50 integer,
PRIMARY KEY(coluna01,coluna02,coluna03...coluna50) );
2009/9/30 Euler Taveira de Oliveira eu...@timbira.com
Tarcísio Sassara escreveu:
Os comandos
2009/9/30 Euler Taveira de Oliveira eu...@timbira.com:
Ele não quer criar um índice de 40 colunas e sim 40 índices em uma tabela.
1: Foi mals. Acho que não entendi/li direito. =D
2: Nunca vi isso.
Em um DW eu coloco na tabela fato as chaves estrangeiras de cada
dimensão e coloco
apenas um
2009/9/30 Fernando Maia maia...@gmail.com:
exato... na realidade preciso fazer isso:
create table fato(
coluna01 integer,
coluna02 integer,
coluna03 integer,
.
.
.
coluna50 integer,
PRIMARY KEY(coluna01,coluna02,coluna03...coluna50) );
Opá, opá.
Então, da uma olhada lá no arquivo
Eu escrevi:
Tarcísio Sassara escreveu:
Os comandos abaixo para criar uma tabela e um índice com 40 colunas deu
certo:
Ele não quer criar um índice de 40 colunas e sim 40 índices em uma tabela.
Opsss... [Faltando cafeína a essa hora da noite] É isso mesmo. Índice com 40
colunas.
--
Fernando Maia escreveu:
Será que fiz da forma correta?
Você tem que executar o initdb novamente para criar outro _cluster_.
--
Euler Taveira de Oliveira
http://www.timbira.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
Olá pessoal,
Eu gostaria de discutir isso com vcs:
Em um DW eu coloco na tabela fato as chaves estrangeiras de cada
dimensão e coloco
apenas um índice contendo todas estas chaves.
esse DW é um trabalho da universidade, minha tutora ensiste em dizer que a
fato deve ser criada daquela forma, segundo
2009/10/1 Fernando Maia maia...@gmail.com:
esse DW é um trabalho da universidade, minha tutora ensiste em dizer que a
fato deve ser criada daquela forma, segundo ela, faz parte do modelo lógico
da tabela fato a criação de todas as dimensões como primary key.
Mas Fernando, está correto. Estas
35 matches
Mail list logo