ďťż
 
=?iso-8859-2?q?drastyczne_r=F3=BFnice_mi=EAdzy_versiami_bazy_-_postgresql?= ďťż
 
=?iso-8859-2?q?drastyczne_r=F3=BFnice_mi=EAdzy_versiami_bazy_-_postgresql?=
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?drastyczne_r=F3=BFnice_mi=EAdzy_versiami_bazy_-_postgresql?=



tomsiak - 25-06-2006 00:10
=?iso-8859-2?q?drastyczne_r=F3=BFnice_mi=EAdzy_versiami_bazy_-_postgresql?=
  WItam!
Zauważyłem bardzo dużą różnicę wydajności bazy danych przy
wykonaniu prostego zapytania
tabela ocena ma aktualnie ok 50 000 wierszy, każdy uczeń ma średnio
25 ocen.
CREATE TABLE ocena
(
id_uczen int4,
id_przedmiot int4,
ocena int4
)
Dodam tylko ze w bazie testowe (windows postgresql 8.1.4) jest kilka
wierszy mniej w tabeli ocena, jakby sie komus nie zgadzaly statystyki
analizujac explain;

Postgresql ver 8.0.3 na linux
dla przykladu proste zapytanie:
select ocena from ocena where id_przedmiot=-2 - zapytanie wykonuje sie
okolo 900ms

explain analyze: daje w wyniku
Seq Scan on ocena (cost=0.00..958.52 rows=2086 width=4) (actual
time=0.039..25.671 rows=2077 loops=1)
Filter: (id_przedmiot = -2)
Total runtime: 26.807 ms

DRUGI PRZYKŁAD
Postgresql ver 8.1.4 na windows xp
select ocena from ocena where id_przedmiot=-2 - zapytanie wykonuje sie
okolo 70ms

explain analyze: daje w wyniku
Seq Scan on ocena (cost=0.00..965.77 rows=1533 width=4) (actual
time=0.059..26.913 rows=2056 loops=1)
Filter: (id_przedmiot = -2)
Total runtime: 30.351 ms

na bazie w wersji postgresql > 8.0.3 wszystko takze dzieje sie o wiele
szybciej. wlaczylem statystyki na 8.0.3 ale nic nie pomoglo oczywiscie
analyze takze wykonalem. Mysle ze powinienem cos ustawic w
postgresql.conf pytanie tylko co. z gory dzięki za odpowiedź





=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 25-06-2006 00:10

  tomsiak wrote:
> WItam!
> Zauważyłem bardzo dużą różnicę wydajności bazy danych przy
> wykonaniu prostego zapytania
>
> Postgresql ver 8.0.3 na linux
> Total runtime: 26.807 ms
>
> DRUGI PRZYKŁAD
> Total runtime: 30.351 ms
>
> na bazie w wersji postgresql > 8.0.3 wszystko takze dzieje sie o wiele
> szybciej.

Ja wiem, czy 4 ms to tak o wiele szybciej? No i zaraz, zaraz... przecież
z tego wynika, że 8.0.3 jest szybsze?! ;)

Wszystko jest kwestią poprawności testów i interpretacji wyników.
Te pierwsze 700ms to po najprawdopodobniej z powodu czytania danych z
dysku, a nie z cache.

--
P.M.




Bartek Siebab - 25-06-2006 00:10

  > tomsiak w dniu 2006-06-24 12:39 pisze:

> Zauważyłem bardzo dużą różnicę wydajności bazy danych przy
> wykonaniu prostego zapytania
> tabela ocena ma aktualnie ok 50 000 wierszy, każdy uczeń ma średnio
> 25 ocen.
> CREATE TABLE ocena
> (
> id_uczen int4,
> id_przedmiot int4,
> ocena int4
> )

> select ocena from ocena where id_przedmiot=-2 - zapytanie wykonuje sie
> okolo 900ms

Załóż indexy na te wszystkie pola tej tabeli

> na bazie w wersji postgresql > 8.0.3 wszystko takze dzieje sie o wiele
> szybciej. wlaczylem statystyki na 8.0.3 ale nic nie pomoglo oczywiscie
> analyze takze wykonalem. Mysle ze powinienem cos ustawic w
> postgresql.conf pytanie tylko co. z gory dzięki za odpowiedź

załóż indexy i powtórz testy

--
..---------- -------- ------ ---- ---- --- - -- -
| Bartek `saphire` Siebab http://bartek.siebab.net




tomsiak - 25-06-2006 00:10
=?iso-8859-2?q?Re:_drastyczne_r=F3=BFnice_mi=EAdzy_versiami_b azy_-_postgresql?=
 
Paweł Matejski napisał(a):
> tomsiak wrote:
> > WItam!
> > Zauważyłem bardzo dużą różnicę wydajności bazy danych przy
> > wykonaniu prostego zapytania
> >
> > Postgresql ver 8.0.3 na linux
> > Total runtime: 26.807 ms
> >
> > DRUGI PRZYKŁAD
> > Total runtime: 30.351 ms
> >
> > na bazie w wersji postgresql > 8.0.3 wszystko takze dzieje sie o wiele
> > szybciej.
>
> Ja wiem, czy 4 ms to tak o wiele szybciej? No i zaraz, zaraz... przecież
> z tego wynika, że 8.0.3 jest szybsze?! ;)
>
> Wszystko jest kwestią poprawności testów i interpretacji wyników.
> Te pierwsze 700ms to po najprawdopodobniej z powodu czytania danych z
> dysku, a nie z cache.
>
> --
> P.M.

Serwer postawiony na linuxie sklada sie z dwóch opteronów i dysków
SCSI, natomisat drugi to zwykly PC Athlon 64 i dysk SATA, na innym
komputerze PIV, dysk IDE 7200 obr baza postgresql > 8.0.3 czas
wykonania okolo 80ms wiec wyklucza to platforme sprzetowa wg mnie





tomsiak - 25-06-2006 00:10
=?iso-8859-2?q?Re:_drastyczne_r=F3=BFnice_mi=EAdzy_versiami_b azy_-_postgresql?=
 
Bartek Siebab napisał(a):
> > tomsiak w dniu 2006-06-24 12:39 pisze:
>
> > Zauważyłem bardzo dużą różnicę wydajności bazy danych przy
> > wykonaniu prostego zapytania
> > tabela ocena ma aktualnie ok 50 000 wierszy, każdy uczeń ma średnio
> > 25 ocen.
> > CREATE TABLE ocena
> > (
> > id_uczen int4,
> > id_przedmiot int4,
> > ocena int4
> > )
>
> > select ocena from ocena where id_przedmiot=-2 - zapytanie wykonuje sie
> > okolo 900ms
>
> Załóż indexy na te wszystkie pola tej tabeli
>
> > na bazie w wersji postgresql > 8.0.3 wszystko takze dzieje sie o wiele
> > szybciej. wlaczylem statystyki na 8.0.3 ale nic nie pomoglo oczywiscie
> > analyze takze wykonalem. Mysle ze powinienem cos ustawic w
> > postgresql.conf pytanie tylko co. z gory dzięki za odpowiedź
>
> załóż indexy i powtórz testy
>
> --
> .---------- -------- ------ ---- ---- --- - -- -
> | Bartek `saphire` Siebab http://bartek.siebab.net

już próbowałem z indexami nie chce mi ich użyć a gdy wyłączyłem
seq_scan i w końcu użył infdexów zapytanie nadal wykonywało się
tak długo. Ale nie w tym rzecz na komputerze testowym z bazą 8.1.4
także uzywa seq_scan ale przelicza 10 razy szybciej czyli ok 70ms.




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 25-06-2006 00:10

  tomsiak wrote:
> Paweł Matejski napisał(a):
>> tomsiak wrote:
>>> WItam!
>>> Zauważyłem bardzo dużą różnicę wydajności bazy danych przy
>>> wykonaniu prostego zapytania
>>>
>>> Postgresql ver 8.0.3 na linux
>>> Total runtime: 26.807 ms
>>>
>>> DRUGI PRZYKŁAD
>>> Total runtime: 30.351 ms
>>>
>>> na bazie w wersji postgresql > 8.0.3 wszystko takze dzieje sie o wiele
>>> szybciej.
>> Ja wiem, czy 4 ms to tak o wiele szybciej? No i zaraz, zaraz... przecież
>> z tego wynika, że 8.0.3 jest szybsze?! ;)
>>
>> Wszystko jest kwestią poprawności testów i interpretacji wyników.
>> Te pierwsze 700ms to po najprawdopodobniej z powodu czytania danych z
>> dysku, a nie z cache.
>
> Serwer postawiony na linuxie sklada sie z dwóch opteronów i dysków
> SCSI, natomisat drugi to zwykly PC Athlon 64 i dysk SATA, na innym
> komputerze PIV, dysk IDE 7200 obr baza postgresql > 8.0.3 czas
> wykonania okolo 80ms wiec wyklucza to platforme sprzetowa wg mnie

A czy ja pisałem coś o platformie sprzętowej? Pokazałem Ci, że wyciągasz
złe wnioski. Różnica masz nie między wersjami bazy, a między select * a
explain analize select *!
--
P.M.




tomsiak - 25-06-2006 00:10
=?iso-8859-2?q?Re:_drastyczne_r=F3=BFnice_mi=EAdzy_versiami_b azy_-_postgresql?=
  > A czy ja pisałem coś o platformie sprzętowej? Pokazałem Ci, że wyciągasz
> złe wnioski. Różnica masz nie między wersjami bazy, a między select * a
> explain analize select *!
> --
> P.M.

dodatkowo opisałem platforme sprzętową a co do czasu wykonania
analyze to byl czysty przypadek na serwerze linuxowym baza 8.0.3
wykonuje sie znacznie dluzej ale to tylko analyze jesli chodzi o
wyszukania danych to roznice sa drastyczne.




hubert depesz lubaczewski - 25-06-2006 00:10

  On 2006-06-24, tomsiak <tomsiak@gmail.com> wrote:
> Postgresql ver 8.0.3 na linux
> dla przykladu proste zapytanie:
> select ocena from ocena where id_przedmiot=-2 - zapytanie wykonuje sie
> okolo 900ms
> DRUGI PRZYKŁAD
> Postgresql ver 8.1.4 na windows xp
> select ocena from ocena where id_przedmiot=-2 - zapytanie wykonuje sie
> okolo 70ms

zakładam iż mówiąc do dużej różnicy piszesz o tym. 900ms vs. 70ms.
w/g mnie różnicy nie ma.

nie wiem jakiej procedury użyłeś do testowania. jakie wcześniej
zapytania robiłeś na tym systemie, w tym połączeniu.
wyciąganie wniosków z pojedynczego zapytania odpalonego raz nie ma
sensu.

odpal tego select'a kilkanascie razy pod rząd na każdej z baz (w
pojedynczym połączeniu) to wtedy można porozmawiać.
dodatkowo przy tak małych ilościach danych to w ogóle by mieć wiarygodne
wyniki musiałbyś przed testami wyczyścić wszystkie możliwe bufory,
cache'a itd. czyli realnie zrestartować system.

dodatkowo - pisano ci o indeksie. zrobiłeś? i postgresql nie chce ci go
użyć?
jak go założyłeś? zrobiłeś potem vacuum analyze? jaki masz rozkład
statystyczny wartości w id_przedmiot (wartość -2 jako id wydaje mi się
być dziwna).

depesz

--
http://www.depesz.com/index.php/2006/06/22/choroby/




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 25-06-2006 00:10

  tomsiak wrote:
>> A czy ja pisałem coś o platformie sprzętowej? Pokazałem Ci, że wyciągasz
>> złe wnioski. Różnica masz nie między wersjami bazy, a między select * a
>> explain analize select *!
>
> dodatkowo opisałem platforme sprzętową a co do czasu wykonania
> analyze to byl czysty przypadek na serwerze linuxowym baza 8.0.3
> wykonuje sie znacznie dluzej ale to tylko analyze jesli chodzi o
> wyszukania danych to roznice sa drastyczne.

Wykonano testy przejazdy pojazdu z punktu A do punktu B.
W 99 przypadkach czas przejazdu był 10h +- 30m, w 1 czas przejazdu
wyniósł 1h. Jaki z tego wniosek?

Co z tego wynika?

--
P.M.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO 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 postgresql - int/int postgresql Select count(*) czy raczej Select count(ID) Postgres - replikcja master-master Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL] Dwie bazy czy dwie tabele?
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • shutter.opx.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