Francisco Manuel Quintana Trujillo escribió: > > Hola, > > La estructura de la base de datos pertenece a un proyecto GIS desarrollado > por www.52North.org por lo tanto puedo realizar modificaciones hasta cierto > punto. > > Realicé los siguientes cambios: > > En la tabla "observation" eliminé temporalmente las reglas que estaban > creadas > -- Rule: "offering_delete_actualization ON observation" > -- Rule: "offering_insert_actualization ON observation" No afecta al delete > -- Rule: "offering_update_actualization ON observation" No afecta al delete > > Además, modifiqué la consulta > delete from observation > where observation_id in (select observation_id from observation EXCEPT select > observation_id from quality);
Hmm, quizás así: delete from observation where not exists (select 1 from quality where quality.observation_id = observation_id); Esto produce un plan de la siguiente forma: QUERY PLAN -------------------------------------------------------------------------------------------------------------------------- Result (cost=3.39..1446.39 rows=100000 width=6) (actual time=0.092..774.735 rows=100000 loops=1) One-Time Filter: $0 InitPlan 1 (returns $0) -> Seq Scan on quality (cost=0.00..339.00 rows=100 width=4) (actual time=0.051..0.051 rows=1 loops=1) Filter: (observation_id = observation_id) -> Seq Scan on observation (cost=0.00..1443.00 rows=100000 width=6) (actual time=0.029..316.555 rows=100000 loops=1) Total runtime: 2155.575 ms (7 filas) Creo que debería ser más rápido. Sin embargo, en un caso de prueba la consulta que tú tenías originalmente me da este plan: QUERY PLAN --------------------------------------------------------------------------------------- Seq Scan on observation (cost=720.25..760.25 rows=1200 width=6) Filter: (NOT (hashed SubPlan 1)) SubPlan 1 -> Unique (cost=0.00..670.25 rows=20000 width=4) -> Index Scan using q_i on quality (cost=0.00..620.25 rows=20000 width=4) (5 filas) Quizás la solución a tu problema es migrar a 8.4 ... -- Alvaro Herrera Developer, http://www.PostgreSQL.org/ "Hoy es el primer día del resto de mi vida" -- TIP 1: para suscribirte y desuscribirte, visita http://archives.postgresql.org/pgsql-es-ayuda