SELECT t1.imie_nazwisko AS nazwisko, count(DISTINCT t1.id_book) AS iloscwpisow, SUM(t2.ilosc) AS iloscsztuk FROM tab1 AS t1, tab2 AS t2 WHERE t1.id_book=t2.id_book GROUP BY t1.imie_nazwisko UNION ALL SELECT t1.imie_nazwisko AS nazwisko, count(DISTINCT t1.id_book) AS iloscwpisow, 0 AS iloscsztuk FROM tab1 AS t1, tab2 AS t2 WHERE t1.id_book NOT IN (SELECT id_book FROM tab2) GROUP BY t1.imie_nazwisko
tabela tab1 zawiera ok 20.000 rekordów
tabela tab2 zawiera ok 5.000 rekordów
czas wykonywania zapytania do UNION-a trwa 0,007 s.
czas wykonywania zapytania po UNION-iea trwa prawie 11 s.
czy to zapytanie można zoptywalizować? Jeśli tak to poproszę o wskazówki