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@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@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda