PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

zapytanie znacznie wolniej z readyStatement w porównaniu do instrukcji

Przygotowane zestawienie rzutuje full_address na text (wbudowany typ tekstu Postgres), podczas gdy wygląda na to, że Twoja tabela jest tworzona za pomocą citext (bez uwzględniania wielkości liter) typ tekstu (lub brak indeksu na full_address::text ). Może spróbuj utworzyć indeks na full_address::text i zobacz, czy przygotowane przez Ciebie zestawienie to odbierze.

Inną opcją jest użycie text wpisz dla full_address kolumnę, a następnie utwórz indeks funkcjonalny na lower(full_address) -- smakowitość tej opcji zależy od Twoich wymagań.

Myślę, że częścią problemu jest to, że JDBC nie wie o citext wpisz tak, chyba że możesz uzyskać JDBC, aby wysłać adres do bazy danych jako citext typ, zostanie zinterpretowany przez planer zapytań jako text , tak jak twoja setString() metoda prawdopodobnie tak.

Co ciekawe, wpadłem ostatnio na podobny problem

Ujawnienie:pracuję dla EnterpriseDB (EDB)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sterownik JDBC jest niedostępny dla „org.postgresql.Driver” dla Spring Roo

  2. Instalowanie Orafce.sql 3.0 w systemie Windows 7

  3. Postgresql odrębny nie działa

  4. Zautomatyzowane testowanie procesu aktualizacji dla PostgreSQL

  5. Jak Trunc() działa w PostgreSQL