Re: Query plan remoto postgresql-oracle

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

In response to

Browse pgsql-es-ayuda by date

  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