Re: [firebase-br] Chave primária em ordem descendente

schiavor schiavor em uol.com.br
Qui Fev 23 14:19:28 -03 2006


Teoricamente ela deve sempre estar com cerca de 5000 mas ela recebe 15000 inserções e remoções por hora.

A quantidade de registros nela depende dos softwares clientes estarem funcionando, se um deles fica sem conexão por exemplo a tabela acumula 50000 registros facilmente.

Em alguns finais de semana ela chega a ter 200000 registros, por que alguns clientes desligam as máquinas.

O select com order by vai perder desempenho proporcional à quantidade de registros inseridos, o que não pode ocorrer, a busca pelas informações deve ter o máximo desempenho sempre, independente da quantidade de registros na tabela.

Estou pensando seriamente em inverter a ordenação do campo chave, que hoje é ascendente para descendente.

Alguém sabe afirmar com certeza, se existe diferença de velocidade na inserção de registros com a chave ordenada de forma ascendente, para as chaves ordenadas de forma descendente? Ou ambas as formas tem o mesmo desempenho?

[ ]'s Rodrigo Schiavo


> Quantos registros tem essa tabela? 
> 
> ----- Original Message ----- 
> From: "schiavor" 
> To: "lista" 
> Sent: Thursday, February 23, 2006 11:45 AM 
> Subject: Re: [firebase-br] Chave primária em ordem descendente 
> 
> 
> Assim funcionou mas tem um desempenho terrivel por causa do order by. 
> 
> [ ]'s Rodrigo Schiavo 
> 
> > Desculpa use assim 
> > 
> > select campos from tabela where codigo = (select first 1 codigo from 
> > tabela 
> > order by codigo desc) 
> > 
> > ----- Original Message ----- 
> > From: "schiavor" 
> > To: "lista" 
> > Sent: Thursday, February 23, 2006 11:17 AM 
> > Subject: [firebase-br] Chave primária em ordem descendente 
> > 
> > 
> > Bom dia, 
> > 
> > 
> > Tenho uma tabela onde são feitas vária inserções/consultas/exclusões, o 
> > total de inserções e remoções deve ser algo em torno de 200.000 por dia. 
> > 
> > Esta tabela possui um campo código que é chave primária e esta ordenado de 
> > forma Ascendente, na consulta eu utilizo um select first, ou seja sempre 
> > vou 
> > estar pegando o menor código, ou o registro mais velho. 
> > Preciso a partir de agora pegar o registro mais atual, modifiquei a 
> > consulta 
> > da seguinte forma: 
> > 
> > select CAMPOS from TABELA where CODIGO = (select MAX(CODIGO) from TABELA) 
> > 
> > Esta consulta fez com que houvesse uma grande perda de desempenho do 
> > sistema. 
> > 
> > Uma alternativa a esta consulta seria utilizar: 
> > 
> > select First 1 CAMPOS from TABELA order by CODIGO Desc 
> > 
> > O que ao meu ver vai ter um desempenho infinitamente inferior 
> > 
> > Pensei em alterar o índice da coluna chave primária (CODIGO) para 
> > Descendente ao invés de Ascendente. Com isto não seria necessário alterar 
> > minha consulta, porém não sei se o Banco de Dados vai perder desempenho na 
> > inserção. O que vocês podem me dizer sobre isto? 
> > 
> > 
> > 
> > Grato pela atenção. 
> > 
> > [ ]'s Rodrigo Schiavo 
> > ______________________________________________ 
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br 
> > Para editar sua configuração na lista, use o endereço 
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br 
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa 
> > 
> > 
> > ______________________________________________ 
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br 
> > Para editar sua configuração na lista, use o endereço 
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br 
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa 
> > 
> ______________________________________________ 
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br 
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br 
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa 
> 
> 
> ______________________________________________ 
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br 
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br 
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa 
> 



Mais detalhes sobre a lista de discussão lista