Pertama, secara arsitektur, saya akan sangat curiga dengan desain apa pun yang melibatkan pengambilan data melalui beberapa tautan basis data. Saya telah melihatnya selesai ketika sumber akhirnya adalah beberapa versi kuno Oracle yang tidak dapat dihubungkan secara langsung oleh basis data target sehingga basis data perantara yang menjalankan versi perantara Oracle digunakan. Itu sangat jarang dalam praktek, meskipun.
Dari perspektif kinerja, pendekatan semacam ini sangat bermasalah. Tentu saja ada masalah bahwa data akan dikirim melalui jaringan dua kali. Tetapi yang lebih mengkhawatirkan, Anda menghadapi masalah yang sulit, mengoptimalkan pernyataan SQL terdistribusi, dan membuatnya hampir tidak dapat diselesaikan. Anda pada dasarnya harus menjamin bahwa Anda tidak akan pernah menanyakan data lokal dan data jarak jauh dalam kueri yang sama atau Anda harus hidup dengan kinerja yang dihasilkan jika Oracle memutuskan rencana kueri bodoh karena seperangkat alat yang tersisa untuk memungkinkan Anda mengoptimalkan kueri semacam ini minimal.
Karena itu, basis data perantara perlu memiliki sinonim atau tampilan yang mengabstraksi tautan basis data. Jadi
Di A:
- buat tautan basis data ke B
Di B:
- buat tautan basis data ke C
- buat sinonim
table
untuk[email protected]
Di A, Anda dapat
SELECT *
FROM [email protected]