Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Indeksiranje ne radi?

[es] :: PostgreSQL :: Indeksiranje ne radi?

[ Pregleda: 4015 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

karas

Član broj: 5574
Poruke: 482
*.routotelecom.com.



+1 Profil

icon Indeksiranje ne radi?05.05.2006. u 12:27 - pre 195 meseci
Čini se da indeksi ne rade dobro ako tabela ima veliki broj redova (nekoliko miliona). Naime, tabela je indeksirana po datumu pa bi pretraga po datumu morala da se odvija koristeći indeks. EXPLAIN to i pokazuje ako je broj redova do otprilike 470 000. Ako je broj redova koje treba pretražiti veći od ovog broja, onda će EXPLAIN pokazati da se pretraga radi sekvencijalno. Da li je neko imao sličan problem?
Verzija je 8.0.3.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

Milos Babic
Beograd

Član broj: 6741
Poruke: 41
*.185.nat-pool-bgd.sbb.co.yu.



Profil

icon Re: Indeksiranje ne radi?06.05.2006. u 11:56 - pre 195 meseci
Da li skoro radio
Code:

VACUUM ANALYZE


Uradi prvo vacuum pa onda probaj EXPLAIN, jer moze da se dogodi da optimizator upita odabere sekvencijalnu
pretragu, pre nego indeksnu, ako je tabela prevelika, ako je skoro reload-ovana/dump-ovana.

Takodje, zgodno je da odradis
Code:

set enable_seqscan to off;

pa vidi da li je brze.

Kada imas DATE kolonu, a radis cesto delete svih starijih od x, zgodno je s vremena na vreme i da reindexiras index,
jer b-tree (prirodno) ne zna kako da iskoristi neiskoricene strane, ukoliko novi datum ne upada u opseg.

Pozdrav,
Milos Babic
 
Odgovor na temu

perakojotgenije
Dragan Matic
Senta

Član broj: 93957
Poruke: 11
*.sksyu.net.

ICQ: 63381963


Profil

icon Re: Indeksiranje ne radi?07.05.2006. u 12:22 - pre 195 meseci
Sto je sasvim u redu, pri takvoj pretrazi i treba da cita sekvencijalno. Pretpostavljam da citas redove nesto poput 'select neke_kolone from neka_tabela where datum > '01-01-2005' npr. Ukoliko je broj redova koji se vracaju veliki (kao sto si ti primetio, oko pola miliona) onda optimizator zakljuci da mu je jeftinije i brze da cita sekvencijalno tabelu nego da cita index, pa tabelu, pa ponovo index, pa ponovo tabelu...
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.adsl.static.sezampro.yu.



+1 Profil

icon Re: Indeksiranje ne radi?10.05.2006. u 11:15 - pre 195 meseci
Urađen je potpuni vakuum tabele, pri tome je ispisivao da preuređuje indekse ali nema promene.
Pokušano i sa pravljenjem nove tabele i smeštanjem podataka u nju. U nju se ne upisuju podaci već samo čitaju, pa nema "rupa", ali pretraga po indeksu ne ide za veći broj redova.
Sve u svemu, kao da indeks ima opseg preko kojega ne može.

Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.tippnet.co.yu.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Indeksiranje ne radi?12.05.2006. u 06:19 - pre 195 meseci
Nemas razloga za brigu. Indeksi nemaju ogranicenja na broj indeksiranih podataka.

Kao sto ti je Matic vec rekao, na osnovu statistike je optimizator upita (ili vec necega davno sam citao taj deo dokumentacije) odlucio da mu je brze da ne koristi indeks.

Upotreba indeksa nije uvek najbrzi put za koricenje tabele. Primer iz zivota: Kad ja citam knjigu onako od korice do korice ne citam non-stop sadrzaj knjige. Sadrzaj koristim kad hocu da nadjem odredjeno poglavlje.

Chachka

PS: PostgreSQL je izuzetna baza. Steta je sto je slabo zastupljena u praksi, sto siromasnost ovog foruma pokazuje.

[Ovu poruku je menjao chachka dana 12.05.2006. u 07:23 GMT+1]
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

dsmr
Desimir Ćirović
projektant IS,

Član broj: 102208
Poruke: 81
82.117.220.*

ICQ: 412217225


+1 Profil

icon Re: Indeksiranje ne radi?02.03.2007. u 12:51 - pre 185 meseci
Chachka: PostgreSQL je izuzetna baza. Steta je sto je slabo zastupljena u praksi, sto siromasnost ovog foruma pokazuje.



..ali je razmena inforamcija toliko kvalitetena da me je PostgreSQL privukao.
Slabo koje drvo sam mogao videti, ali sam poznavao celu šumu koju. Moja lična
apstrakcija izmedju specifikacije i generalizacije.
 
Odgovor na temu

[es] :: PostgreSQL :: Indeksiranje ne radi?

[ Pregleda: 4015 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.