Ich bin 10 über eine dblink in Oracle ein wenig Mühe mit einem Auswahl in Einsatz ich die folgende Anweisung verwenden:Auswählen und Setzen über dblink
INSERT INTO LOCAL.TABLE_1 (COL1, COL2)
SELECT COL1, COL2
FROM [email protected] s
WHERE COL1 IN (SELECT COL1 FROM WORKING_TABLE)
Wenn ich die Anweisung ausführen folgende ist, was wird gegen den Remote-Server auf dem DB-Link zu laufen:
SELECT /*+ OPAQUE_TRANSFORM */ "COL1", "COL2"
FROM "REMOTE"."TABLE1" "S"
Wenn ich laufen die Auswahl nur und nicht tun, um den Einsatz in den folgenden ausgeführt wird:
SELECT /*+ */ "A1"."COL1"
, "A1"."COL2"
FROM "REMOTE"."TABLE1" "A1"
WHERE "A1"."COL1" =
ANY (SELECT "A2"."COL1"
FROM "LOCAL"."TABLE1"@! "A2")
Das Problem ist im Einfügefall die Entire-Tabelle wird über den dblink gezogen und dann begrenzt localy, die angesichts der Tabellengröße ein wenig Zeit braucht. Gibt es einen Grund, den Einsatz hinzuzufügen, würde das Verhalten auf diese Weise ändern?
Ich hatte versucht, vor der Buchung den folgenden Hinweis zur ersten Abfrage hinzuzufügen, aber die gleichen Ergebnisse erhalten. /* + DRIVING_SITE (s) */ Das wäre Hinweise auf die dblink Seite richtig fahren? – Domtar