sql >> Databasteknik >  >> RDS >> PostgreSQL

Varför använder PostgreSQL (9.1) inte index för enkel jämlikhetsval?

För att felsöka dessa är det absolut nödvändigt att du kör VACUUM ANALYZE på bordet mellan felsökningsstegen för att se vad som fungerar. Annars kanske du inte vet exakt vad som förändrats var. Så försök det och kör igen först och se om det löser problemet.

Nästa steg att köra (kör vakuumanalys och testa fall mellan var och en) är:

ALTER TABLE lead ALTER COLUMN email SET STATISTICS 1000;

Det kanske fixar det. Kanske inte.

Om det inte löser det, ta en närmare titt på pg_stat-vyn:

SELECT * FROM pg_stat WHERE table_name = 'lead';

Vänligen läs följande noggrant och se vad du kan se som är fel i pg_stat;

http://www.postgresql.org/docs/9.0/static /planner-stats.html

EDIT:För att vara mycket tydlig, vacuum analyse är inte hela felsökningen. Det MÅSTE dock köras mellan felsökningsstegen eftersom du annars inte kan vara säker på att planeraren tar hänsyn till korrekta data.



  1. Hur beter sig pgbouncer när transaktionspoolning är aktiverad och ett enda uttalande utfärdas?

  2. Opencart 1.5.1.3 visar specialpris med start- och slutdatum på produktvisningssidan

  3. Generera INFORMATION_SCHEMA-tabell för MySQL-databas

  4. Det går inte att analysera Oracle-tidsstämpel i C#