Jump to content

Recommended Posts

Posted

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

Posted

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/

I used to have a life ... but i bought a programmable machine in 1982 ...

Posted

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

Posted

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.

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Posted

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

Posted

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

I used to have a life ... but i bought a programmable machine in 1982 ...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.