[pgsql] zapytanie miękkie, a użycie indeksu
Enix - 25-12-2006 01:27
[pgsql] zapytanie miękkie, a użycie indeksu
Witam Grupowiczów.
Jest tabelka z kolumna typu integer na której jest indeks. Tabela ma koło miliona rekordów. Liczby w kolumnie są nieciągłe i różne. Szukam rekordu dla którego pole jest bliskie x, wiedząc że x nie zostanie znaleziony, ale chcę dostać rekord z najbliższą mniejszą od x wartością. Jak byście to zrobili, żeby skorzystać szybko z indeksu ? I jaki indeks ? Bo obecnie explain pokazuje że owszem z indeksu korzysta, ale estymuje koło pół miliona rekordów i trwa to długo jak przy seqscanie. limit 1 nic nie daje.
pzdr. Enix
hubert depesz lubaczewski - 26-12-2006 00:30
On 2006-12-25, Enix <enix@eni.pl> wrote: > żeby skorzystać szybko z indeksu ? I jaki indeks ? Bo obecnie explain > pokazuje że owszem z indeksu korzysta, ale estymuje koło pół miliona > rekordów i trwa to długo jak przy seqscanie. limit 1 nic nie daje.
pokaż jakie zapytanie zrobiłeś.
depesz
-- rower trekkingowy od złotówki http://www.allegro.pl/item151225399_...ywany_bcm.html
Enix - 26-12-2006 00:30
> pokaż jakie zapytanie zrobiłeś. > > depesz > select * from tabela where pole<x order by pole desc limit 1
pzd, enix
hubert depesz lubaczewski - 26-12-2006 00:30
On 2006-12-25, Enix <enix@eni.pl> wrote: >> pokaż jakie zapytanie zrobiłeś. >> depesz > select * from tabela where pole<x order by pole desc limit 1
pomijając fakt, że nie zawsze to ci zwróci najbliższą wartość, to zapytanie wygląda ok. explain analyze jak wygląda?
depesz
-- rower trekkingowy od złotówki http://www.allegro.pl/item151225399_...ywany_bcm.html
Enix - 26-12-2006 00:30
> pomijając fakt, że nie zawsze to ci zwróci najbliższą wartość, to > zapytanie wygląda ok. > explain analyze jak wygląda?
Ech, już działa dobrze.... był w klauzuli WHERE jeszcze jeden warunek który pwodowoał talkie zachowanie, przepraszam za zamieszanie. A dlaczego piszesz ż enie zawsze zwróci najbliższa wartość ? Chodzi mi konkretnie o najbliższą ale mniejszą.
pzdr. Enix
hubert depesz lubaczewski - 26-12-2006 00:30
On 2006-12-25, Enix <enix@eni.pl> wrote: > Ech, już działa dobrze.... był w klauzuli WHERE jeszcze jeden warunek który > pwodowoał talkie zachowanie, przepraszam za zamieszanie. > A dlaczego piszesz ż enie zawsze zwróci najbliższa wartość ? Chodzi mi > konkretnie o najbliższą ale mniejszą.
nie napisałeś, że najbliższą, ale mniejszą. pisałeś o najbliższej. najbliższa może być większa.
depesz
-- rower trekkingowy od złotówki http://www.allegro.pl/item151225399_...ywany_bcm.html
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
[ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?=
phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?=
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
[mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?=
[MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?=
mecze sie i mecze i nic - zapytanie czesciowe
[MySQL]: Dodanie zliczania =?ISO-8859-2?Q?rekord=F3w_do_rozb?==?ISO-8859-2?Q?udowanego_zapytania?=
zapytanie do =?ISO-8859-2?Q?dw=F3ch_tabel_z_limitem_wier?==?ISO-8859-2?Q?szy?=
zanotowane.pldoc.pisz.plpdf.pisz.plquentinho.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 |
|