Otmização de Consultas (arquivo morto)  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
FernandoCartaxo
JavaTeenager
[Avatar]

Membro desde: 22/04/2007 13:06:14
Mensagens: 169
Offline

Olá,
bem, estou desenvolvendo uma aplicação web e pensando um pouco em torná-la rápida me deparei com o paradgima de usuarios inativos.
Explicando melhor o problema:
na tabela de cadastro de usuário, com o passar do tempo, vai existindo usuários inativos, e que acabam pesando nas consultas.
O que pretendo é tornar as consultas na tabela de usuario o mais rápido possível, pois sempre a mesma vai ser usada.
Minha solução é criar uma tabela de usuario_inativo e movimentar todos os cadastros que estão inativos durante X dias.
Quando um cadastro não for encontrado na tabela principal, irá procurar na tabela de usuarios_inativos e "restaurar" o usuario para a tabela principal.

Essa solução funcina, porém creio que há outras maneiras de contornar esse problema
Alguém que já passou por isso ou tem alguma outra sugestão para poder aumentar meu desempenho?

ps: banco de dados é o Postgres

Att,
Fernando Cartaxo

brunoonurbgyn
Entusiasta Java
[Avatar]

Membro desde: 07/05/2008 10:35:24
Mensagens: 20
Offline

O certo é fazer na mesma tabela mesmo...

Só o tempo que você gasta com a 2ª consulta ativada... Seria o mesmo tempo se fosse na mesma tabela.



Está demorando muito??? Posta o Script da sua tabela e o Script de consulta aí ....



Vai ajudar

" Quem pensa que sabe tudo é ignorante. Inteligente é aquele que se faz de burro para aprender mais e mais! "

Viva o Java!
[Email] [MSN]
joca_java
JavaChild
[Avatar]

Membro desde: 16/08/2007 14:02:09
Mensagens: 128
Offline

Porque não deixas todos na mesma tabela e insere mais um campo tipo um "status" pro usuário sei lá...

Aí, ao invés de ter que passar os "inativos" para outra tabela, você setaria apenas o status dele para "I" por exemplo.

Tipo uma exclusão lógica.

"from Usuario u where u.status = 'A'" -> Pegaria apenas os usuários ativos.


Não sei se é a melhor maneira mas é uma sugestão.
FernandoCartaxo
JavaTeenager
[Avatar]

Membro desde: 22/04/2007 13:06:14
Mensagens: 169
Offline

Acontece que se eu deixar uma tabela com 500.000 registros (não é isso que tem), para eu fazer uma consulta ficará lento, independente de ter campo de inativo ou não

Eu tendo duas tabelas, como os usuários ativos são os que frequentemente usam, eu só devo consultar a tabela de usuarios_inativos muito pouco, o que não tornaria o processo igual

Att,
Fernando Cartaxo

Granella
Debugger

Membro desde: 20/03/2007 23:18:26
Mensagens: 72
Localização: Fernandópolis - São Paulo
Offline

Olá.
A criação de índice pode ajudar a melhorar a performance de sua consulta. Acho desnecessário a criação de outra tabela, mas tudo depende .

Até

Fagner Granella
[MSN]
Rodrigo Carvalho Auler
Virtual Machine Man

Membro desde: 14/02/2003 15:59:17
Mensagens: 576
Localização: Rio de Janeiro
Offline

FernandoCartaxo wrote:Acontece que se eu deixar uma tabela com 500.000 registros (não é isso que tem), para eu fazer uma consulta ficará lento, independente de ter campo de inativo ou não

Eu não acho 500 mil registros em uma tabela um número muito grande. Provavelmente a criação de alguns indices deve ser o suficiente. Dificilmente eu separaria em duas tabelas...

[]'s

Rodrigo C. A.
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team