QUE ESTRATÉGIA ABORDAR EM MUITOS DADOS
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?
Usar views, indexar as colunas necessárias... a coisa vai looooooooonge
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...
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...
É 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.
O que voce quer dizer quando se refere a View?
Create View Minha_view as Select * from bla bla bla
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
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
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.
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.
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
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....
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....
Faça seu login para responder