ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3605018 DBリンク&シノニム経由インデックス
質問者:hiro_sun Oracle8iサーバ(サービス名:Aサーバ)と
Oracle10gサーバ(サービス名:Bサーバ)があります。

Aサーバに作られた、aスキーマに、test_tableというテーブルがあります。
そのtest_tableをBサーバに作られた、bスキーマから参照する為に、
DBリンク:BA_linkを作成しました。

実際に、bスキーマから参照する場合は、
同スキーマに、
CREATE SYNONYM test_table FOR test_table@BA_link;
のように作られたシノニムを利用して、参照します。

抽出に時間がかかるので、インデックスを作成しようと思うのですが、
どのスキーマにどのように作成すればよいのでしょうか?
ちなみにインデックスの対象にしたい項目は、
VAR_ITEM VARCHAR2(10)
NUM_ITEM NUMBER(5)
とします。

ちなみにbスキーマにて、
CREATE INDEX test_table_IX1
ON test_table (VAR_ITEM, NUM_ITEM);
と実行したところ、
ORA-02021: リモート・データベースに対するDDL操作が無効です・
というエラーが発生しました。

DBリンク先自身に、作成すべきということはなんとなく予想が
つくのですが、そのインデックスはDBリンク経由でも有効なのでしょうか?
困り度:
  • すぐに回答を!
質問投稿日時:
07/12/17 09:08

回答

ANo.1 Aサーバ上のテーブルに対する索引はAサーバ上に作成します。
Bサーバが受け付けたSQL文は、Aサーバのテーブルに対する検索SQLに組み立て直されて、Aサーバに託されます。
Aサーバのテーブルを検索するのは、あくまでAサーバですし、Aサーバが所有するテーブルの実行計画を立てるのも
Aサーバ自身です。
回答者:k_o_r_o_c_h_a_n
種類:回答
どんな人:一般人
自信:参考意見
回答日時:
07/12/17 18:07
この回答への補足この回答に補足をつける(質問者のみ)
この回答へのお礼この回答にお礼をつける(質問者のみ)