| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/12/2008 13:06:52
|
FernandoCartaxo
JavaTeenager
![[Avatar]](/images/avatar/1aae1a3aa7b71edec22e9d382f2a6ae9.jpg)
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
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/12/2008 14:59:08
|
brunoonurbgyn
Entusiasta Java
![[Avatar]](/images/avatar/d281706a315b6f8c5854acc72059b2d0.png)
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! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/12/2008 18:20:56
|
joca_java
JavaChild
![[Avatar]](/images/avatar/85fa59ac8a893137b2777551335631ed.jpg)
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/01/2009 09:08:47
|
FernandoCartaxo
JavaTeenager
![[Avatar]](/images/avatar/1aae1a3aa7b71edec22e9d382f2a6ae9.jpg)
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/01/2009 14:10:42
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/01/2009 15:03:40
|
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.
|
|
|
 |
|
|