PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

SQL JOIN di PostgreSQL - Rencana eksekusi yang berbeda dalam klausa WHERE daripada di klausa ON

Terima kasih atas ide Anda, jika kami menambahkan indeks seperti

CREATE INDEX t3_t1_nr ON t3(t1_nr);

Pernyataan "BURUK" akan sedikit meningkat.

Tetapi solusi terakhir bagi kami adalah meningkatkan statistik yang dikumpulkan untuk tabel ini:

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;

Setelah perubahan ini, kedua PILIH memiliki lebih banyak tentang waktu eksekusi yang sama. Informasi lebih lanjut dapat ditemukan di sini:https://www.postgresql.org/docs/12/planner-stats.html




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menampilkan gambar dari database PostgreSQL, byte

  2. sesuaikan pager di psql

  3. PostgreSQL Upsert membedakan baris yang disisipkan dan diperbarui menggunakan kolom sistem XMIN, XMAX, dan lainnya

  4. SQL Query untuk Transpose Jumlah Kolom ke Jumlah Baris

  5. Baris PostgreSQL ke kolom