• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

GOMES

Carregar dados

7 mensagens neste tópico

Bom dia

Estou com um pequeno dilema ao fazer uma aplicação.

Então é assim tenho que carregar 1115000 de registos de uma db oracle, só que nao sei drop downlist esta fora de questao alem de ser um pouco demorado nao me parece o mais adequado.

Ja pensei fazer isso com um autocomplete ainda tenho isso em meia pratica mas como ele faz a pesquisa na mesma mesmo carregando inicialmente o objecto e deixar em cache a informação tambem demora algum tempo.

Alguma sugestão de alguma best practice para isto?

Cumprimentos,

DG

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

usa links de shortcut para (carregar) conjunto de dados se possivel (A-B    C-D ...etc)

mais importante de tudo, faz paginação de dados no servidor oracle ou seja:

cria um stored procedure que receba como parametros a query que queres , e o numero da página associada.

http://yedda.com/questions/Paging_database_performance_oracle_8622446671315/

http://www.blahstuff.com/oldstuff/2005/12/08/363/paging-oracle-results/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boa tarde

Obrigado pela resposta.

Mas ai esta o problema é que tem de aparecer todos os registos nao posso usar parametros o que torna mais complexo.

Eu consigo mostrar os registos e consigo carregar a dropdownlist.

Eu pensei em usar um textbox com autocomplete quando ele insere ja começa a fazer a pesquisa mas ai esta vai ter de fazer a pesquisa e demora algum tempo.

Cumprimentos,

DG

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Queres uma cena tipo as sugestões q aparecem na pesquisa do google?

ou seja tu escreves, e abre uma janela em baixo com palavras que começam pelo teu texto.

O Google faz isso com ajax, e para mim é a melhor opção, sendo q estás a trabalhar em asp .net recomendo um controlo próprio p isso em ajax. É rápido e eficiente pq só faz postbacks daquele bocado, e na base de dados vai sendo filtrado pelas palavras q introduzes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom dia

Obrigado a todos pelas respostas .

O problema é que na pesquisa demora imenso devido ao numero de resgistos. Ou seja ele começa a filtragem e demora muito isso sim ainda por cima como nao posso usar qualquer tipo de filtragem é Pior.

Imaginem o cenario com o auto complete ele insere o 3 ele vai filtrar todos os artigo que comecem por 3 sao para 150000 ou agora ele poe 34 sao 98000. Este é o problema que me obriga a arranjar uma estrategia.

Cumprimentos,

DG

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

na minha optica, não é viavel carregar uma catrefada de dados para memoria.

uma solução será criares um Stored Procedure em Oracle que te retorne todos os dados iniciados por uma letra.

Posteriormente podes criar um autocomplete com as seguintes nuances:

[*]na inicialização do object pela 1ª vez vai executar o SP para obter todos os dados iniciados por (A).

[*]vai pegar no resultado (DataSet) e gravar fisicamente numa localização do disco (cache) .

[*]Vai carregar os dados para o objecto autocomplete.

Quando mudares uma letra que não seja a inicial da Textbox

[*]Vai filtrar (fazer um select )ao dataset que está em memoria e carregar os dados retornados para o objecto autocomplete.

Quando mudares a letra inicial da textbox

[*]Vai verificar se existe algum ficheiro no disco (cache) que já tenha sido carregado anteriormente.

[*]Se sim, vai verificar a sua data de gravação, se esta for à mais de 10 minutos (define tu o tempo de vida da cache...), vai apaga-lo. Senão vai carrega-lo para o objecto autocomplete.

[*]No caso de não existir um ficheiro de cache ou este ser inválido, vai executar o SP para obter todos os dados iniciados pela letra digitadar .

[*]vai pegar no resultado (DataSet) e gravar fisicamente numa localização do disco (cache) .

[*]Vai carregar os dados para o objecto autocomplete.

Lembra-te que o motor do Oracle tmb faz cache às queries pedidas, com isto quero dizer que o tempo de execução do SP(A) na primeira

vez é muito superior ao tempo de execução do mesmo SP(A) numa segunda vez.

/ing

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora