Autor Tópico: Mostrar apenas os últimos registros do BD na grid - Dúvida!!!  (Lida 1009 vezes)

83Flavio

  • Novato
  • *
  • Mensagens: 3
Mostrar apenas os últimos registros do BD na grid - Dúvida!!!
« Online: Outubro 22, 2014, 11:02:45 pm »
Olá!

Estou com o seguinte problema: Tenho que consulta em que a grid está selecionando e mostrando do banco de dados todos os registros inseridos. Isto está aumentando o fluxo da rede, por isso preciso limitar esta busca no BD de apenas 10 ou 20 últimos registros.

1ª Tentativa: Na SQL da aplicação tentei usar a opção "LIMIT 10", mas não funcionou.
2ª Tentativa: Nas configurações tentei colocar paginação total e nº de registros a exibir como 10, mas não funcionou.
3ª Tentativa: Na SQL da aplicação tentei filtrar pela data atual: ...WHERE (campo = DATE_FORMAT(NOW(), '%Y-%m-%d')) mas não funcionou,deu o erro: "Faltou marcar campos que devem fazer parte da Consulta"

Alguém tem alguma outra opinião, ou então uma luz do que eu possa estar fazendo errado?

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Mostrar apenas os últimos registros do BD na grid - Dúvida!!!
« Responder #1 Online: Outubro 22, 2014, 11:31:18 pm »
2ª Tentativa: Nas configurações tentei colocar paginação total e nº de registros a exibir como 10, mas não funcionou.

Você tem que usar paginação parcial, aí coloca o limite por página.
Fazendo assim, a cláusula limit fica por conta do SC e vc agiliza sua consulta.
Considere também usar índices se usar WHERE.
Rodrigo Araújo

Haroldo

  • Expert
  • *****
  • Mensagens: 6274
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Mostrar apenas os últimos registros do BD na grid - Dúvida!!!
« Responder #2 Online: Outubro 23, 2014, 06:25:41 am »
coloca em ordem descrescente pelo id e pagina com 20.

83Flavio

  • Novato
  • *
  • Mensagens: 3
Re:Mostrar apenas os últimos registros do BD na grid - Dúvida!!!
« Responder #3 Online: Outubro 23, 2014, 08:15:30 am »
Companheiros bom dia!

Estas sugestões que me deram já realizei e pelo monitoramento da rede elas ainda continuam com tráfego alto, pois mesmo sendo 20 registros de página por página, a grid está puxando do banco em torno de 4000 registros a cada Refresh (1mim), sem contar quando inseri outro registro.
Sobretudo, arrumei uma solução com o WHERE:

WHERE data = 'xxxxxxx'
Ele só está puxando os registro com data xxxxxxx.

Agora estou precisando de um comando MYSQL que puxe os dois últimos dias para aprimorar.
Já tentei WHERE (data = DATE_FORMAT(NOW(), '%Y-%m-%d')) mas não deu certo ainda.

Estou pesquisando, se puderem me ajudar...

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Mostrar apenas os últimos registros do BD na grid - Dúvida!!!
« Responder #4 Online: Outubro 23, 2014, 08:43:44 am »
Companheiros bom dia!

Estas sugestões que me deram já realizei e pelo monitoramento da rede elas ainda continuam com tráfego alto, pois mesmo sendo 20 registros de página por página, a grid está puxando do banco em torno de 4000 registros a cada Refresh (1mim), sem contar quando inseri outro registro.
Sobretudo, arrumei uma solução com o WHERE:

WHERE data = 'xxxxxxx'
Ele só está puxando os registro com data xxxxxxx.

Agora estou precisando de um comando MYSQL que puxe os dois últimos dias para aprimorar.
Já tentei WHERE (data = DATE_FORMAT(NOW(), '%Y-%m-%d')) mas não deu certo ainda.

Estou pesquisando, se puderem me ajudar...

Faz como o Haroldo falou, é a maneira rápida e prática, eu uso desta forma também...

Luis Eduardo

  • Intermediário
  • ***
  • Mensagens: 163
    • Email
Re:Mostrar apenas os últimos registros do BD na grid - Dúvida!!!
« Responder #5 Online: Outubro 23, 2014, 09:04:21 am »
Companheiros bom dia!

Estas sugestões que me deram já realizei e pelo monitoramento da rede elas ainda continuam com tráfego alto, pois mesmo sendo 20 registros de página por página, a grid está puxando do banco em torno de 4000 registros a cada Refresh (1mim), sem contar quando inseri outro registro.
Sobretudo, arrumei uma solução com o WHERE:

WHERE data = 'xxxxxxx'
Ele só está puxando os registro com data xxxxxxx.

Agora estou precisando de um comando MYSQL que puxe os dois últimos dias para aprimorar.
Já tentei WHERE (data = DATE_FORMAT(NOW(), '%Y-%m-%d')) mas não deu certo ainda.

Estou pesquisando, se puderem me ajudar...

Faz como o Haroldo falou, é a maneira rápida e prática, eu uso desta forma também...

Flávio, já verificou os índices desta tabela? Está acontecendo só com esta grid?
Outra coisa 4000 registros é muito pouco para estar tão alto. Pode ser que sua query tenha muitos JOINS e com tabelas maiores.

Sugestões: 1) Verifique os índices; 2) Verifique a estrutura da query, as vezes mudando o lado de ação (LEFT JOIN ou RIGHT JOIN), ajuda;

Forte Abraço

83Flavio

  • Novato
  • *
  • Mensagens: 3
Re:Mostrar apenas os últimos registros do BD na grid - Dúvida!!!
« Responder #6 Online: Outubro 23, 2014, 10:12:32 am »
Resolvido por enquanto!!!!

Consegui resolver listando apenas os registros dos últimos 05 dias. O problema é que para pesquisar períodos antigos vou ter que usar outra grid.
Ainda bem que ela já existe. Ficou assim o fim do SQL:

WHERE TO_DAYS(NOW()) - TO_DAYS(data) <= 15

Caro Luis Eduardo, agradeço pela dica e vou verificar a situação repassada, pois às vezes o problema seja realmente este que você citou.

No mais obrigado a todos pelo apoio.