Skocz do zawartości

Jak zoptymalizować takie zapytanie?


Burn

Rekomendowane odpowiedzi

Cześć.

Czy jest jakiś sensowny sposób aby przebudować poniższe zapytanie aby działało sprawniej?

- tabelaA - posiada ok 300tys rekordów ( parametr2 jest unikalny i jest na nim indeks )

- tabelaB - posiada ok 140tys rekordów ( parametr2 NIE jest unikalny i jest na nim indeks)

SELECT kol1,kol2,kol3,kol4
FROM tabelaA
WHERE parametr != '2'
AND parametr2 NOT
IN ( SELECT parametr2 FROM tabelaB WHERE 1 )
ORDER BY parametr2 ASC
Dzięki.
Odnośnik do komentarza
Udostępnij na innych stronach

Także zakładałem indeksy na inne kolumny.

Problemem jest "dependent subquery", czyli "SELECT parametr2 FROM tabelaB WHERE 1"/

Skoro to zwraca 140tys rekordów jako podzapytanie to jest to czynnik mocno spowalniający.

Może zastosowanie left joina po "parametr2" by zwiększyło wydajność?

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności