To rozsądna funkcja . Charakter zapytań dynamicznych polega na tym, że zmienia ono swoją strukturę z połączenia na połączenie.
Jeśli chcesz wielokrotnie wywoływać to samo zapytanie (opcjonalnie z różnymi parametrami), użyj przygotowanych instrukcji :
Lub użyj zwykłego (niedynamicznego) kodu SQL wewnątrz funkcji plpgsql, które również są traktowane jako przygotowane instrukcje.
W twoim przypadku , najlepiej PREPARE
zapytania dynamicznie. Mieliśmy tutaj bardzo podobny przypadek:
Poza tym jest niezwykle rzadko zdarza się, że zapytanie spędza 1,4 s na planowanie i tylko 0,1 s na wykonanie. Może warto się przyjrzeć. Mogą istnieć sposoby optymalizacji. Podobnie jak w przypadku join_collapse_limit
:
- Przykładowe zapytanie pokazujące błąd szacowania kardynalności w PostgreSQL
- O:Powolne wyszukiwanie pełnotekstowe z powodu bardzo niedokładnych szacunków wierszy
Powiązane: