Temat: Jak to zoptymalizować???
Witam
Mam takie zapytanie i do czasu jak była mała liczba danych było ok jednak teraz wykonuje się bardzo długo i chciałbym to jakiś zoptymalizować. Dla uproszczenia posłużę się symbolicznymi nazwami:
SELECT
tabela1.kolumna1,
tabela2.kolumna1,
tabela2.kolumna2,
tabela2.kolumna3,
tabela3.kolumna1
FROM
schemat1.tabela1,
schemat2.tabela2,
schemat3.tabela3
WHERE
date(tabela1.kolumna1) >= '2010-06-04' AND
date(tabela1.kolumna1) <= '2010-06-09' AND
tabela3.kolumna2 = tabela2.kolumna2 AND
tabela1.kolumna2 = tabela2.kolumna4 AND
tabela1.kolumna2 IN (SELECT tabela4.kolumna1
FROM schemat2.tabela4
WHERE kolumna1 = 1) OR
tabela1.kolumna2 IN (SELECT DISTINCT tabela5.komumna1
FROM schemat2.tabela5,
schemat2.tabela6
WHERE
tabela4.kolumna3 IN (SELECT tabela3.kolumna2
FROM schemat2.tabela3) AND
kolumna2 = 1);
Wygląda to na zagmatwane ale nie mam pomysłu jak to uprościć.
Po za tym przydałoby się chyba po indeksować niektóre tabele tylko czy to coś przyspieszy?
A może jakieś ustawienia w pliku konfiguracyjnym coś przyspieszą?