sql >> Databasteknik >  >> RDS >> Oracle

Hur anropar man SELECT över DBLINK över DBLINK?

För det första, arkitektoniskt, skulle jag vara ganska skeptisk till alla design som involverade att dra data över flera databaslänkar. Jag har sett det göras när den eventuella källan är någon gammal version av Oracle som måldatabasen inte kan ansluta till direkt, så en mellanliggande databas som kör en mellanversion av Oracle användes. Det är dock väldigt ovanligt i praktiken.

Ur ett prestationsperspektiv är den här typen av tillvägagångssätt allvarligt problematisk. Det finns naturligtvis problemet att data kommer att skickas över nätverket två gånger. Men mer än oroande, du tar ett svårt problem, optimerar distribuerade SQL-satser och gör det nästan svårlöst. Du måste i princip antingen garantera att du aldrig skulle fråga lokal data och fjärrdata i samma fråga eller så måste du leva med resultatet om Oracle bestämmer sig för en dum frågeplan eftersom uppsättningen verktyg kvar för att låta dig optimera denna typ av fråga är minimal.

Med detta sagt skulle den mellanliggande databasen behöva ha synonymer eller vyer som abstraherar bort databaslänken. Så

På A:

  • skapa databaslänk till B

På B:

På A kan du sedan

SELECT *
  FROM [email protected]



  1. Hur man visar ett plsql-felmeddelande med dynamisk åtgärd

  2. Gå med i två bord och extrahera det lägsta priset med flera villkor (multipel sku)

  3. Konvertera tal till ord i SQL

  4. Lägga till en raderingsknapp i PHP på varje rad i en MySQL-tabell