ďťż
 
=?ISO-8859-2?Q?wydajno=B6=E6_sqlite?= ďťż
 
=?ISO-8859-2?Q?wydajno=B6=E6_sqlite?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

=?ISO-8859-2?Q?wydajno=B6=E6_sqlite?=



=?ISO-8859-2?Q?=22Przemys=B3aw_C=2E=22?= - 27-05-2006 00:40
=?ISO-8859-2?Q?wydajno=B6=E6_sqlite?=
  Witam,
Piszę małą bazę danych w javie. W sumie dwie tabele i używam do tego
sqlite i JDBC.
mam listę z kategoriami i po kliknięciu wczytuję towary na jtable.
Wszytsko chodzi pięknie. Rekordy szybko się wczytują. i tu pojawia się
jedno ale....
mam jtextfield i po wpisaniu jakiegos kodu w tym polu maja się
wyświetlić tylko kategorie znalezionych towarów. I faktycznie to działa
ale wolno. Aktualnie w bazie mam cos koło 22000 rekordów i wyszukanie
trwa jakies 8-10 sekund a na konsoli przez sqlite.exe to samo zapytanie
wyświetla rekordy dużo szybciej. Hmm czy to jest spowodowane mechanizmem
JDBC? jak można to przyśpieszyć?
Trochę kodu jakiego używam...

class BazaDanych {
...
private static Connection db;
private static Statement st;
...
/* chyba kluczowe query */
public ResultSet query(String sql)
{
return st.executeQuery(sql);
}
}

odczyt rekordow robie tak
Bazadanych db = new BazaDanych();

/* szuakj jest szuaknym ciagiem znakow z JTextField */

sql = "select distinct id_kategora, kategoria from kategoria join towar
on towar.id_kategoria=kategoria.id_kategoria where towar like '%" +
szukaj + "%' order by kategoria";

ResultSet rs = db.query(sql); /* tutaj się przycina */

while( rs.next() )
{
/* wyswietlanie rekordow */
/* tutaj tworze tez obiekty kalsy Kategoria */
}

Wiem że napewno nie jest to spowodowane tworzeniem rekordów klasy
Kategoria bo program "przycina się" we wskazanym w miejscu.
Moze to wina zapytania jest?
Pozdrawiam

--
Przemysław C.
pc83_at_NoSpAmErS_tlen.pl gg: 7267664
Powered by ArchLinux Gimmick





Krzysztof Wolny - 27-05-2006 00:40

  Przemysław C. napisał(a):

> Witam,
> Piszę małą bazę danych w javie. W sumie dwie tabele i używam do tego
> sqlite i JDBC.

aplikacje bazodanowa jak rozumiem? :)

> mam listę z kategoriami i po kliknięciu wczytuję towary na jtable.
> Wszytsko chodzi pięknie. Rekordy szybko się wczytują. i tu pojawia się
> jedno ale....
> mam jtextfield i po wpisaniu jakiegos kodu w tym polu maja się
> wyświetlić tylko kategorie znalezionych towarów. I faktycznie to działa
> ale wolno. Aktualnie w bazie mam cos koło 22000 rekordów i wyszukanie
> trwa jakies 8-10 sekund a na konsoli przez sqlite.exe to samo zapytanie
> wyświetla rekordy dużo szybciej. Hmm czy to jest spowodowane mechanizmem
> JDBC? jak można to przyśpieszyć?

> Wiem że napewno nie jest to spowodowane tworzeniem rekordów klasy
> Kategoria bo program "przycina się" we wskazanym w miejscu.
> Moze to wina zapytania jest?

co do zapytan to napewno mozesz sprobowac przejs na PreparedStatement,
napewno oplaci sie to pod wzgledem bezpieczenstwa.

co do wydajnosci to zainstaluj sobie np. mysqla, wrzuc do neigo tyle samo
danych i sprawdz czy chodzi czybciej. jesli tak to wiesz gdzie jest wina.

--
================================
Krzysztof Wolny

[ http://rtfm.bsdzine.org ][ http://tiny.pl/g776 ]

O: No bo normalnie to każdy czyta z góry na dół...
P: Dlaczego ???
O: Pisanie nad cytatem !
P: Co należy do bardziej wkurzających obyczajów niektorych ludzi ?




=?ISO-8859-2?Q?=22Przemys=B3aw_C=2E=22?= - 30-05-2006 04:07

  Krzysztof Wolny > napisał(a):
> aplikacje bazodanowa jak rozumiem? :)
racja aplikacje bazodanową ;-)

> co do wydajnosci to zainstaluj sobie np. mysqla, wrzuc do neigo tyle
> samo danych i sprawdz czy chodzi czybciej. jesli tak to wiesz gdzie jest
> wina.
rzeczywiście winą jest sqlite. stworzyłęm na prędce baze w postgresie i
małe zmiany w kodzie i zapytaniach i śmiga szybko wprost w oka
mgnieniu ;-)
pozdrawiam




Brzezi - 30-05-2006 04:08

  pon, 29 maj 2006 o 08:27 GMT, Przemysław C. napisał(a):

>> co do wydajnosci to zainstaluj sobie np. mysqla, wrzuc do neigo tyle
>> samo danych i sprawdz czy chodzi czybciej. jesli tak to wiesz gdzie jest
>> wina.
> rzeczywiście winą jest sqlite. stworzyłęm na prędce baze w postgresie i
> małe zmiany w kodzie i zapytaniach i śmiga szybko wprost w oka
> mgnieniu ;-)

niekoniecznie baza, problem moga stanowci zle dobrane zapytania, brak lub
zle indeksy, ale to w takiej sytuacji to wrozenie z fusow....

Pozdrawiam
Brzezi
--
[ E-mail: brzezi@enter.net.pl ][ ]
[ Ekg: #3781111 ][ Error in operator: add beer ]
[ LinuxUser: #249916 ][ ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Czy zna (obsługuje) ktoś program Iso Draw ? MYSQL - kodowanie w ISO-PL strona plus baza w iso do utf-8 Kodowanie: z iso na utf Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8 =?iso-8859-2?q?Co_oznacza_b=B3=B1d_Warning:_mysql=5Fconnect() _[function.mysql-connect]:_Can't_connect_to_local_MySQL_server_through_sock et_'/var/run/mysqld/mysqld.sock'_(2)_in?= =?iso-8859-2?q?Informatyka,_Java,_EJB,_Ajax,_Spring=2E_Czy=BF by_to_koniec_=B6wiata,_czy_te=BF_nasze_uczelnie_b= EAd=B1_uczy=B3y_w_ko=F1cu!_czego_praktycznego_=2E= 2E=2E=2E?= [MS SQL 2005] =?windows-1250?Q?Ilo=9C=E6_wiersz=F3w_w_zbiorze_wynikowym?= =?ISO-8859-2?Q?=AFegnam_si=EA=2E=2E=2E?= Manager =?ISO-8859-2?Q?font=F3w=2E=2E=2E?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • sulimczyk.pev.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com