मैं मुसीबत का एक सा ओरेकल 10. मैं निम्नलिखित बयान उपयोग कर रहा हूँ में एक dblink भर में डालने में एक चयन के साथ हो रहा है भर में सम्मिलित करें:का चयन करें और dblink
INSERT INTO LOCAL.TABLE_1 (COL1, COL2)
SELECT COL1, COL2
FROM [email protected] s
WHERE COL1 IN (SELECT COL1 FROM WORKING_TABLE)
जब मैं बयान चलाने निम्नलिखित क्या है पर डीबी लिंक दूरस्थ सर्वर के खिलाफ चलाए हो जाता है:
SELECT /*+ OPAQUE_TRANSFORM */ "COL1", "COL2"
FROM "REMOTE"."TABLE1" "S"
अगर मैं चयन केवल चलाने के लिए और में डालने नहीं करते निम्नलिखित चलाया जाता है:
SELECT /*+ */ "A1"."COL1"
, "A1"."COL2"
FROM "REMOTE"."TABLE1" "A1"
WHERE "A1"."COL1" =
ANY (SELECT "A2"."COL1"
FROM "LOCAL"."TABLE1"@! "A2")
मुद्दा डालने के मामले में है, enitre तालिका को dblink में खींचा जा रहा है और फिर सीमित लोकली है जो टेबल आकार के बाद काफी समय लेता है। क्या सम्मिलित करने का कोई कारण इस तरह से व्यवहार को बदल देगा?
मैंने पोस्ट करने से पहले प्रारंभिक क्वेरी में निम्नलिखित संकेत जोड़ने का प्रयास किया था, लेकिन एक ही परिणाम प्राप्त हुए। /* + DRIVING_SITE (/) 0/ वह dblink पक्ष पर ड्राइव करने के लिए सही संकेत देगा? – Domtar