Šta je novo?

Otvaranje velike baze u C Sharpu ili VB

februarski

Slavan
Učlanjen(a)
06.07.2006
Poruke
28
Poena
304
Pomenuta velika baza ima oko 100.000 unosa i velika je oko 140 mb. Potrebno je napraviti aplikaciju koja ce da prikazuje podatke i malo osnovnog pretrazivanja. Ono sto mi smeta je ucitavanje baze na pocetku koje traje 15tak sekundi i blokira celu aplikaciju. Naravno da to ne moze brze, ali da li je moguce da se ucitavanje baze radi u pozadini, i da se podaci ubacuju u taj nekakav glomazni listbox onako kako se ucitavaju, pa makar taj proces trajao duplo duze, ali da se zato program pokrece momentalno? Ako neko ima neku ideju, bio bih zahvalan, pošto već postajem očajan :)
 
Tako nesto sam i razmisljao... Ako neko ima neki kod viska, neka ga baci ovde i ulepsa mi dan :)
 
Od cistokrvnog threada ti je bolji threadpool ili asinhroni poziv (da implementiras pomocu Async patterna). Mada su ova dva u velikoj meri isprepletana. Pozz.
 
Da li ti je bas neophodno da imas svih 100.000 zapisa odjednom u memoriji?
Ako nije (a verovatno nije) onda bi trebalo da koristis SQL upite da filtriras i dovuces iz baze samo one zapise koji ti u tom trenutku trebaju (za prikaz ili editovanje).

Nisi napisao koja je baza u pitanju?
 
Poslednja izmena:
Pomenuta velika baza ima oko 100.000 unosa i velika je oko 140 mb. Potrebno je napraviti aplikaciju koja ce da prikazuje podatke i malo osnovnog pretrazivanja. Ono sto mi smeta je ucitavanje baze na pocetku koje traje 15tak sekundi i blokira celu aplikaciju. Naravno da to ne moze brze, ali da li je moguce da se ucitavanje baze radi u pozadini, i da se podaci ubacuju u taj nekakav glomazni listbox onako kako se ucitavaju, pa makar taj proces trajao duplo duze, ali da se zato program pokrece momentalno? Ako neko ima neku ideju, bio bih zahvalan, pošto već postajem očajan :)

Kao prvo to nemoj da radis !!!
Koji covek ce moci da se snadje u 100.000 zapisa ?
Moraces da koristis neke filtere za pretragu a kad ih vec budes koristio bolje da sam posao filtriranja prepustis samoj bazi nego da ti nesto razvijas. Za to i sluze baze podataka inace bi tih tvojih 100.000 zapisa mogao da drzis i u textualnom fajlu.

A ako bas moras da aplikaciju drzis zivu dok traju neke iteracije (ucitavanje rekord po rekord) koristi Application.DoEvenets().

Takodje za prikaz toliko podataka nemoj koristi listbox ili listview i slicne stanadardne windows kontrole nego uzmi DataGrid odnosno DataGridView pa podatke ucitaj u DataSet. Ovo ucitavanje ce ti mozda trajati 2-3 sekeunde, mozda vise zavisno od masine i tipa baze podataka.
 
Ovo sto ti pokusavas je veliko No no... koliko slojeva ima ta aplikacija BTW?
 
Kesiranje na klijent strani; pri startu programa se ucita samo prvi "page" i nema potrebe za daljim komplikovanjem, cekanjem da se cela baza ucita itd.
 
Nazad
Vrh Dno