sql >> Database teknologi >  >> RDS >> PostgreSQL

SQL JOIN i PostgreSQL - En anden eksekveringsplan i WHERE-klausul end i ON-klausul

Tak for dine ideer, hvis vi tilføjer et indeks som

CREATE INDEX t3_t1_nr ON t3(t1_nr);

"DÅRLIG"-erklæringen vil forbedre en lille smule.

Men den endelige løsning for os var at øge den indsamlede statistik for disse tabeller:

ALTER TABLE t1 ALTER COLUMN t1_nr SET STATISTICS 10000;
ALTER TABLE t2 ALTER COLUMN t2_nr SET STATISTICS 10000;
ALTER TABLE t3 ALTER COLUMN t1_nr SET STATISTICS 10000;

ANALYZE t1;
ANALYZE t2;
ANALYZE t3;

Efter denne ændring har begge SELECT'er mere om den samme udsendelsestid. Mere information kan findes her:https://www.postgresql.org/docs/12/planner-stats.html




  1. SQL-forespørgsel i FB JavaScript

  2. Hvordan kopierer man en mysql-tabel til en anden i cakephp?

  3. Forstå GROUPING og GROUPING_ID funktioner i SQL Server

  4. Oracle :Eksporter udvalgt sætningsresultatsæt som INSERT SQL-sætninger svarende til SQL-udviklereksport