私はオラクル11gを使用しています。データベース リンクを使用して、ローカル テーブルをリモート テーブルと結合するクエリがあります。主にリモートテーブルを使用していくつかの行を取得するようにフィルタリングするため、駆動テーブルをリモートテーブルにしたいと考えています。次に、それらをローカルテーブルに結合したいと思います。
問題は、オプティマイザが ORDERED ヒントと INDEX ヒントを無視し、ローカル テーブルのフル テーブル スキャンを実行することです。適切なインデックスを使用しており、統計を生成しています。正しいインデックスを使用する各テーブルでクエリを個別に実行しますが、結合では、ローカル テーブルが常にフル テーブル スキャンを実行し、駆動テーブルとして機能します。
SELECT /*+ INDEX_RS_ASC(l) */
*
FROM remote_table@mylink r
JOIN local_table l USING (cont_id)
WHERE r.PRIME_VENDOR_ID = '12345'