sql >> Databasteknik >  >> RDS >> PostgreSQL

Långsam fråga på UNION ALL-vyn

Det här verkar vara ett pilotfel. Frågeplanen "v" väljer från minst 5 olika tabeller.

Är du säker på att du är ansluten till rätt databas? Kanske finns det några läckra sökvägsinställningar? Kanske är t1 och t2 faktiskt vyer (möjligen i ett annat schema)? Kanske du på något sätt väljer från fel vy?

Redigerad efter förtydligande:

Du använder en ganska ny funktion som heter "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

Det verkar som om funktionen inte slår in när fackföreningen alla är inblandade. Du måste förmodligen skriva om vyn med endast de två nödvändiga tabellerna.

en annan redigering:Du verkar använda ett aggregat (som "välj antal(*) från v" mot "välj * från v"), som kan få väldigt olika planer inför borttagning av sammanfogningar. Jag antar att vi inte kommer särskilt långt utan att du lägger upp de faktiska frågorna, vyn och tabelldefinitionerna och planerna som används...



  1. Hur SEC_TO_TIME() fungerar i MariaDB

  2. Hur du vårrensar din databas

  3. Hur man aktiverar den långsamma frågeloggen i MySQL

  4. Android SQLite Databas Unit Testing