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

Permintaan lambat pada tampilan UNION ALL

Ini tampaknya menjadi kasus kesalahan pilot. Paket kueri "v" memilih dari setidaknya 5 tabel berbeda.

Sekarang, Apakah Anda yakin Anda terhubung ke database yang benar? Mungkin ada beberapa pengaturan search_path yang funky? Mungkin t1 dan t2 sebenarnya adalah tampilan (mungkin dalam skema yang berbeda)? Mungkin Anda entah bagaimana memilih dari pandangan yang salah?

Diedit setelah klarifikasi:

Anda menggunakan fitur baru yang disebut "join removal" :http:// wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.0#Join_Removal

http://rhaas.blogspot.com/2010 /06/why-join-removal-is-cool.html

Tampaknya fitur tersebut tidak berfungsi saat penyatuan semua terlibat. Anda mungkin harus menulis ulang tampilan hanya menggunakan dua tabel yang diperlukan.

suntingan lain:Anda tampaknya menggunakan agregat (seperti "select count(*) from v" vs. "select * from v"), yang bisa mendapatkan rencana yang sangat berbeda dalam menghadapi penghapusan gabungan. Saya kira kita tidak akan melangkah terlalu jauh tanpa Anda memposting kueri aktual, tampilan dan definisi tabel serta rencana yang digunakan...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernasi Beda dengan pesanan oleh

  2. postgresql setara dengan $mysqli->insert_id

  3. Mengumumkan repmgr 2.0RC2

  4. Menerapkan Switchover/Switchback di PostgreSQL 9.3.

  5. Bisakah saya menggunakan perintah \copy ke dalam fungsi postgresql?