Skip site navigation (1) Skip section navigation (2)

Rendimiento de mi consulta

From: "Rafa Comino" <rafacomino(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Rendimiento de mi consulta
Date: 2007-02-27 13:31:10
Message-ID: bd8b58a40702270531n21ed076ay7cbfe214e51e49b5@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Tengo la siguiente consulta:
SELECT DISTINCT isbn, CURRENT_TIMESTAMP, 1
              FROM librosdisponibilidadtemp
             WHERE proceso = ai_proceso
               AND gen_isbn_pais(isbn) IN (SELECT pais FROM raizpaises)
               AND NOT EXISTS
                   ( SELECT isbn
                       FROM libros
                      WHERE isbn = librosdisponibilidadtemp.isbn)
               AND NOT EXISTS
                   ( SELECT isbn
                       FROM isbns_a_descubrir
                      WHERE isbn = librosdisponibilidadtemp.isbn);

Y el plan de ejecución es el siguiente
Unique  (cost=133558107.45..133558128.13 rows=414 width=21) (actual time=
790552.899..790553.098 rows=9 loops=1)
  ->  Sort  (cost=133558107.45..133558112.62 rows=2068 width=21) (actual
time=790552.882..790552.944 rows=9 loops=1)
        Sort Key: isbn, now(), 1
        ->  Index Scan using librosdisponibilidadtemp_idx_proceso on
librosdisponibilidadtemp  (cost=1.01..133557993.56 rows=2068 width=21)
(actual time=5722.607..790552.588 rows=9 loops=1)
              Index Cond: (proceso = 28465)
              Filter: ((hashed subplan) AND (NOT (subplan)) AND (NOT
(subplan)))
              SubPlan
                ->  Seq Scan on isbns_a_descubrir
(cost=0.00..8067.91rows=1 width=21) (actual time=
30.044..30.044 rows=1 loops=2025)
                      Filter: ((isbn)::bpchar = $1)
                ->  Index Scan using "libros_idx_ISBN" on libros  (cost=
0.00..5.95 rows=1 width=21) (actual time=12.938..12.938 rows=1 loops=50512)
                      Index Cond: (isbn = $1)
                ->  Seq Scan on raizpaises  (cost=0.00..1.01 rows=1
width=10) (actual time=0.764..0.871 rows=1 loops=1)
Total runtime: 790553.561 ms

La tabla libros tiene 1200000 regs.
La tabla isbns_a_descubrir tiene 300000 regs.
La tabla librosdisponibilidadtemp tiene 50000 regs.

alguien me puede explicar por qué librosdisponibilidadtemp_idx_proceso es
tan lento y las otras condiciones han ido tan bien

Responses

pgsql-es-ayuda by date

Next:From: Gabriel ColinaDate: 2007-02-27 13:46:25
Subject: Re: clase conexion php+postgres y la solucion de leonel
Previous:From: Raúl Mero MoreiraDate: 2007-02-27 13:17:05
Subject: Re: clase conexion php+postgres

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group