sql >> Database >  >> RDS >> Oracle

Hoe SELECT aanroepen via DBLINK via DBLINK?

Ten eerste, architectonisch gezien, zou ik behoorlijk wantrouwig zijn van elk ontwerp waarbij gegevens over meerdere databasekoppelingen moesten worden getrokken. Ik heb het gezien wanneer de uiteindelijke bron een oude versie van Oracle is waarmee de doeldatabase niet rechtstreeks verbinding kan maken, dus werd een tussenliggende database gebruikt waarop een tussenversie van Oracle werd uitgevoerd. Dat is in de praktijk echter zeer zeldzaam.

Vanuit een prestatieperspectief is dit soort benadering ernstig problematisch. Er is natuurlijk het probleem dat de gegevens twee keer over het netwerk worden verzonden. Maar zorgwekkender is dat u een moeilijk probleem pakt, gedistribueerde SQL-instructies optimaliseert en het bijna onhandelbaar maakt. Je zou eigenlijk ofwel moeten garanderen dat je nooit lokale gegevens en externe gegevens in dezelfde zoekopdracht zou opvragen, of je zou moeten leven met de resulterende prestaties als Oracle besluit tot een dom queryplan omdat de set tools over is om je in staat te stellen het optimaliseren van dit soort zoekopdrachten is minimaal.

Dat gezegd hebbende, zou de tussenliggende database synoniemen of weergaven moeten hebben die de databasekoppeling wegnemen. Dus

Op A:

  • database link naar B maken

Op B:

Op A kunt u dan

SELECT *
  FROM [email protected]



  1. Wat is het verschil tussen weergaven en gematerialiseerde weergaven in Oracle?

  2. Veld automatisch bijwerken in database

  3. Vind waarden die geen getallen bevatten in MySQL

  4. Installeer meerdere MySQL-instanties op een Linux-server -gebruik een apart MySQL-configuratiebestand