[informix] Optymalizacja zapytania
BJ - 28-06-2006 00:08
[informix] Optymalizacja zapytania
Cześć.
Mam bazę informixa 7.23 a w niej tabelę która ma 123 mln rekordów.
Zapytanie:
Select * From arch Where nadawca Like 'XXX%' and adresat not like 'XXX%' and (data>="01.01.2006" and data<"01.06.2006");
Indeksy są na: nadawca, adresat, (id, data)
Potencjalnie zwracany zbiór moze mieć kilka-klilkanaście milionów rekordów. Z tego co wiem w tej wersji Informixa nie mozna zobaczyć planu zapytania bez jego wykonania (może się mylę, ale i tak nie mam praw do wykonania set explain, a nie jestem administratorem tej bazy)
Pytanie: czy można zopytmalizować to zapytanie (wykonuje się już klikanaście godzin)? czy robiony jest full scan tabeli? Czy wykorzystywany jest indeks na dacie i id (id nie jest pobierane pobierane z zapytaniu)
Pozdrawiam B
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 28-06-2006 00:09
BJ wrote: > Cześć. > > Mam bazę informixa 7.23 a w niej tabelę która ma 123 mln rekordów. > > Zapytanie: > > Select * > From arch > Where nadawca Like 'XXX%' and adresat not like 'XXX%' > and (data>="01.01.2006" and data<"01.06.2006"); > > Indeksy są na: nadawca, adresat, (id, data) > > Potencjalnie zwracany zbiór moze mieć kilka-klilkanaście milionów rekordów. Z > tego co wiem w tej wersji Informixa nie mozna zobaczyć planu zapytania bez > jego wykonania (może się mylę, ale i tak nie mam praw do wykonania set > explain, a nie jestem administratorem tej bazy) > > Pytanie: > czy można zopytmalizować to zapytanie (wykonuje się już klikanaście godzin)? > czy robiony jest full scan tabeli? Czy wykorzystywany jest indeks na dacie i > id (id nie jest pobierane pobierane z zapytaniu)
Nie znam się na informixie, ale mogę powiedzieć, że na pewno index (id,data) nie jest wykorzystywany. Może być wykorzystywany index na nadawca, ale czy jest, zależy od tego jaki procent tabeli obejmuje warunek nadawca like 'XXX%'. Poprawę możesz uzyskać zakładając indeks (data,nadawca) ewentualnie (nadawca,data).
-- P.M.
Migat - 28-06-2006 00:09
BJ wrote: > Select * > From arch > Where nadawca Like 'XXX%' and adresat not like 'XXX%' > and (data>="01.01.2006" and data<"01.06.2006"); > czy można zopytmalizować to zapytanie (wykonuje się już klikanaście godzin)? > czy robiony jest full scan tabeli? Czy wykorzystywany jest indeks na dacie i > id (id nie jest pobierane pobierane z zapytaniu)
Jezeli moge cos podpowiedziec to ja bym sie do tego zabral w taki sposob, ze ograniczylbym zestaw rekodow, kopiujac je np. do nowej tymczasowej tabeli. Poniewaz przeszukieanie po dacie jest szybsze niz po varcharze to najpierw zrobil bym tabele z rekordami spelniajacymi warunek data>="01.01.2006" and data<"01.06.2006". Przy kopiowaniu ucialbym tez nadawce do 3 liter (bo z zapytania wynika ze chcesz odnalezc rekordy, ktore zaczynaja sie na XXX a pozniej dowlne znaki - wiec interesuja Ci tylko pierwsze trzy litery), no a pozniej bym szukal juz normalnie bez like czyli WHERE nadawca = 'XXX' and nadawca != 'XXX'
Pzdr PawelB
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?=
=?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?=
[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?=
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
[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
zanotowane.pldoc.pisz.plpdf.pisz.plmorebeer.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 |
|