Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào để gọi SELECT qua DBLINK qua DBLINK?

Trước hết, về mặt kiến ​​trúc, tôi sẽ khá nhạy bén với bất kỳ thiết kế nào liên quan đến việc kéo dữ liệu qua nhiều liên kết cơ sở dữ liệu. Tôi đã thấy nó được thực hiện khi nguồn cuối cùng là một phiên bản Oracle cổ nào đó mà cơ sở dữ liệu đích không thể kết nối trực tiếp nên một cơ sở dữ liệu trung gian chạy phiên bản trung gian của Oracle đã được sử dụng. Tuy nhiên, điều đó rất hiếm trong thực tế.

Từ góc độ hiệu suất, cách tiếp cận này rất có vấn đề. Tất nhiên, có một vấn đề là dữ liệu sẽ được gửi qua mạng hai lần. Nhưng đáng lo ngại hơn, bạn đang gặp phải một vấn đề khó khăn, tối ưu hóa các câu lệnh SQL phân tán và làm cho nó gần như không thể chữa được. Về cơ bản, bạn sẽ phải đảm bảo rằng bạn sẽ không bao giờ truy vấn dữ liệu cục bộ và dữ liệu từ xa trong cùng một truy vấn hoặc bạn sẽ phải sống với hiệu suất kết quả nếu Oracle quyết định một kế hoạch truy vấn ngu ngốc vì bộ công cụ còn lại cho phép bạn tối ưu hóa loại truy vấn này là tối thiểu.

Điều đó đang được nói, cơ sở dữ liệu trung gian sẽ cần phải có các từ đồng nghĩa hoặc dạng xem mà trừu tượng hóa liên kết cơ sở dữ liệu. Vì vậy,

Trên A:

  • tạo liên kết cơ sở dữ liệu tới B

Trên B:

  • tạo liên kết cơ sở dữ liệu tới C
  • tạo bảng table cho [email protected]

Trên A, sau đó bạn có thể

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. Ghi đầu ra DBMS_OUTPUT.Put_Line vào bảng trong Oracle với DBMS_OUTPUT.Get_Lines

  2. Tham gia băm trong Oracle với ví dụ

  3. Giá trị mặc định của VARCHAR2 trong Oracle là gì?

  4. Kết nối với Oracle DB hỗ trợ SSL thông qua Java (JDBC)

  5. Cách làm mất hiệu lực một câu lệnh SQL trong vùng Oracle SQL để một kế hoạch mới được tạo ra khi thu thập số liệu thống kê