QUE ESTRATÉGIA ABORDAR EM MUITOS DADOS

NOWLIGHTS 08/09/2022 15:59:09
#500422
Que tipo de estratégia posso abordar quando preciso buscar muitos dados no banco de dados com +- uns 3 inner/left join usando EF Core, notei uma certa lentidão, tirando a questão de melhorar o Servidor, existe algo que possamos fazer?
KERPLUNK 08/09/2022 16:29:33
#500423
Usar views, indexar as colunas necessárias... a coisa vai looooooooonge
NOWLIGHTS 08/09/2022 19:15:44
#500427
Pode da uma explicada nessas duas opções que voce deu?? hahahaha

Tenho um projeto em asp.net core mvc com .net6, e basicamente quando preciso exibir, em uma unica tela, +- uns 2.500 registros com inner/left join, da uma lentidao para carregar

Uma "estratégia" que estou pensando em abordar é a seguinte:

Produo:

Nome
Idcliente
IdTransportadora
IdUsuario
e etc..

fazer uma referencia direto na tabela dos "valores indexados mais usados" por exemplo:

Produo:
Nome
IdCliente
NomeCliente
CPFCliente
IdTransportadora
NomeTransportadora
CNPJTransportadora

Com isso, eu tenho os dados mais acessados das tabelas filhas direto na tabela pai, caso preciso de algo mais "profundo" eu faço a referencia .include e etc...
KERPLUNK 08/09/2022 21:18:32
#500428
É para esse tipo de coisa que se usa uma VIEW e não quebrar a interdependencia de dados. Outra coisa que pode aliviar a lentidão é a seleção com lazy loading.
NOWLIGHTS 08/09/2022 23:41:44
#500429
O que voce quer dizer quando se refere a View?
KERPLUNK 09/09/2022 00:41:55
#500430
Create View Minha_view as Select * from bla bla bla
KERPLUNK 09/09/2022 00:45:30
#500431
Aqui a especificação
LEANDROVIP 09/09/2022 08:29:51
#500432
Olá,

Voce notou uma "certa lentidão", consegue especificar?
Quanto tempo dura para retornar as consultas?
Quantos registros tem nas tabelas (principal e relacionadas)?
As colunas de filtro tem index?
Está usando "includes" nas consultas?
Se fizer a consulta sem usar o EF tem o mesmo resultado?

Tente especificar um pouco mais, o assunto por si só é enorme e cheio de possibilidades
MRSILVA 09/09/2022 14:20:26
#500435
Olá.

Uma estratégia que uso e que está dando certo para todas as consultas é buscar no máximo 200 registros por vez, ou seja, quando o usuário faz a consulta já carrego rapidamente os primeiros registros e depois vou buscando o restante dos registros, dessa forma o usuário não fica esperando já consegue ir visualizando os registro até rolando a pagina se quiser. Caso a consulta retornar muitos dados o sistema da um ar de ser muito rápido, porque quase não tem espera para retornar os primeiros registros.



NOWLIGHTS 09/09/2022 15:45:35
#500436
Citação:

Olá.

Uma estratégia que uso e que está dando certo para todas as consultas é buscar no máximo 200 registros por vez, ou seja, quando o usuário faz a consulta já carrego rapidamente os primeiros registros e depois vou buscando o restante dos registros, dessa forma o usuário não fica esperando já consegue ir visualizando os registro até rolando a pagina se quiser. Caso a consulta retornar muitos dados o sistema da um ar de ser muito rápido, porque quase não tem espera para retornar os primeiros registros.



Voce utiliza essa abordagem como? com yield return + jquery??

----------------------

Estudei toda a estrutura de dados e como estava buscando no banco de dados esses 2.500 - 3.000 registros, do jeito que estava, demorava +- 20 à 30 segundos para carregar tudo, é muita coisa... refiz a estruturação, e agora n demora nem 1 segundo para exibir. Era somente mal desenvolvido e mal estruturado hahahaha, mas achei interessante a abordagem do MRSILVA
MRSILVA 09/09/2022 17:51:05
#500437
NOWLIGHTS

Minha aplicação é em Blazor webassembly utilizo C# e html puro para fazer isso.
Basicamente faço da seguinte forma, quando faço a primeira requisição o retorno de uma classe que contem uma propriedade que me informa a quantidade de registro com critério da consulta e outra propriedade com a lista de registros (200 registros ou menos se quiser) depois vou fazendo a busca dos registros até trazer todos os registros, tenho uma classe que controla tudo isso para mim é possível cancelar a busca de registro....





Página 1 de 2 [16 registro(s)]
Faça seu login para responder