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

Hvorfor bruger PostgreSQL (9.1) ikke indeks til simpel lighedsvalg?

For at fejlfinde disse er det bydende nødvendigt, at du kører VACUUM ANALYZE på bordet mellem fejlfindingstrinene for at se, hvad der virker. Ellers ved du måske ikke præcis, hvad der har ændret sig hvor. Så prøv det og kør igen først og se, om det løser problemet.

De næste trin til at køre (kør vakuumanalyse og test sag mellem hver enkelt) er:

ALTER TABLE lead ALTER COLUMN email SET STATISTICS 1000;

Måske vil det løse det. Måske ikke.

Hvis det ikke løser det, så se nærmere på pg_stat-visningen:

SELECT * FROM pg_stat WHERE table_name = 'lead';

Læs venligst følgende grundigt og se, hvad du kan se, der er galt i pg_stat;

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

EDIT:For at være meget tydelig, vacuum analyse er ikke hele fejlfindingen. Det SKAL dog køres mellem fejlfindingstrinene, for ellers kan du ikke være sikker på, at planlæggeren tager højde for korrekte data.



  1. Problemer med TransactionScope og Oracle

  2. Ændring af adgangskode med Oracle SQL Developer

  3. Konvertering af en Postgresql-database fra SQL_ASCII, der indeholder blandede kodningstyper, til UTF-8

  4. php output fra mysql til html-tabel