From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | jaime soler <jaime(dot)soler(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Query plan remoto postgresql-oracle |
Date: | 2015-06-17 13:18:01 |
Message-ID: | 20150617131801.GV133018@postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
jaime soler escribió:
> El problema aparece cuando tengo la tabla TR en oracle y TL en
> postgresql, que tanto si uso dblink, dblink_ora o fdw no consigo el uso
> de semi join, sino Foreign Scan que entiendo que son equivalentes a seq
> scans.
A mí no me parece razonable pensar que se pueda optimizar mucho eso
actualmente. Quizás en alguna versión futura donde tengamos más control
sobre qué condiciones se entregan al nodo remoto.
Quizás podrías poner la extracción desde Oracle en un CTE, y usar el CTE
en el EXISTS, del tipo
WITH remota AS (
select ... FROM tr(at)dblink
WHERE dat >= ... AND <= ...
)
SELECT * FROM TL WHERE EXISTS (
SELECT .. FROM remota WHERE l.cod = remota.cod
)
pero no sé qué tan óptimo irá a resultar eso, porque si miras la
ubicación del "cod", puede tener que traer demasiado de la tabla remota.
Quizás podrías agregar en el CTE una condición para que sólo traiga los
registros que sean relevantes ...?
(BTW yo no usaría ni dblink ni dblink_ora; creo que con FDW deberías
tener los mejores resultados, o por lo menos es donde parece más
razonable de mejorar)
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Jose Alberto Lopez | 2015-06-17 19:40:04 | colector de estadisticas |
Previous Message | Gilberto Castillo | 2015-06-17 12:48:49 | Re: Query plan remoto postgresql-oracle |