GOMES Posted May 14, 2009 at 08:23 AM Report #264035 Posted May 14, 2009 at 08:23 AM 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
inginheiiro Posted May 14, 2009 at 08:51 AM Report #264036 Posted May 14, 2009 at 08:51 AM 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 ...
GOMES Posted May 14, 2009 at 05:52 PM Author Report #264195 Posted May 14, 2009 at 05:52 PM 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
bruno1234 Posted May 14, 2009 at 10:32 PM Report #264265 Posted May 14, 2009 at 10:32 PM 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
jpaulino Posted May 14, 2009 at 10:45 PM Report #264268 Posted May 14, 2009 at 10:45 PM Vê o exemplo que o bruno1234 está-se a referir http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AutoComplete/AutoComplete.aspx
GOMES Posted May 15, 2009 at 07:49 AM Author Report #264284 Posted May 15, 2009 at 07:49 AM 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
inginheiiro Posted May 15, 2009 at 08:50 AM Report #264298 Posted May 15, 2009 at 08:50 AM 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 ...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now