Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak wywołać SELECT przez DBLINK przez DBLINK?

Po pierwsze, pod względem architektonicznym, byłbym dość nieufny wobec każdego projektu, który wymagałby przeciągania danych przez wiele łączy bazy danych. Widziałem, jak to się robi, gdy ostatecznym źródłem jest jakaś starożytna wersja Oracle, z którą docelowa baza danych nie może połączyć się bezpośrednio, więc użyto pośredniej bazy danych z pośrednią wersją Oracle. W praktyce jest to jednak bardzo rzadkie.

Z perspektywy performansu takie podejście jest bardzo problematyczne. Pojawia się oczywiście problem, że dane będą przesyłane przez sieć dwukrotnie. Ale co bardziej niepokojące, podejmujesz trudny problem, optymalizując rozproszone instrukcje SQL i czyniąc go prawie niewykonalnym. Zasadniczo musiałbyś albo zagwarantować, że nigdy nie wykonasz zapytań dotyczących danych lokalnych i zdalnych w tym samym zapytaniu, albo będziesz musiał żyć z wynikową wydajnością, jeśli Oracle zdecyduje się na głupi plan zapytań, ponieważ zestaw narzędzi pozostawiony, aby umożliwić ci optymalizacja tego rodzaju zapytania jest minimalna.

Biorąc to pod uwagę, pośrednia baza danych musiałaby mieć synonimy lub widoki, które abstrahują od łącza bazy danych. Więc

Na A:

  • utwórz łącze bazy danych do B

Na B:

Na A możesz wtedy

SELECT *
  FROM [email protected]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mapowanie Split Entity dające nieoczekiwane wyniki z bazą danych Oracle

  2. parametr oddzielony przecinkami w procedurze składowanej plsql

  3. Dynamiczny parametr daty PL/SQL z zachowaną wartością czasu

  4. Zwracanie wartości kolumny tożsamości po wstawieniu do Oracle

  5. Devart dotConnect dla Oracle w Visual Studio 2015 - problemy ze zgodnością