リモート Oracle サーバーからデータを取得するクエリを実行しようとしており、取得したデータがデータベースに既に存在するかどうかを確認してから、結果から削除します。
SELECT DISTINCT
col1,
col2,
col3,
col4 ,
col5,
col6 ,
col7,
col8 ,
col9 ,
col10,
col11
FROM remoteserver.tab1 dist
JOIN remoteserver.tab2 headers
ON headers.id1 = dist.id2
JOIN remoteserver.tab3 vendors
ON headers.id1 = vendors.id3
JOIN remoteserver.tab4 comb
ON dist.id2 = comb.id4
where
cond1 and cond2 and cond3 and cond4
SELECT DISTINCT
col1,
col2,
col3,
col4,
col5,
col6,
col7,
col8,
col9,
col10,
col11
FROM myserver.tab1
これは、私が実行しているクエリのサイズに関する単なる詳細です。問題は、結果を取得するのに非常に長い時間 (約 20 分!) かかることです。リンクサーバーとは異なるアプローチを使用して、パフォーマンスを向上させる方法や同じロジックを実現する方法について何か提案はありますか?