0

Oracle は USER_TAB_COLUMNS ビューにある COLUMN_ID をどのように使用しますか? 主キーが強制されている場合や一意のキー制約が作成されている場合など、暗黙的なインデックスを作成しているときに、この内部列の順序付けを使用しないことを確認する必要があるだけです (つまり、提供されたキー/制約列が同じ順序で使用されます)。これらの内部列順序ではありません)。(可能であれば、Oracle ドキュメントの方向性を教えてください。) 前もって感謝します。

4

1 に答える 1

1

column_id何かをしないと述べているものを見つけるのは難しいでしょうが、インデックスの作成をオーバーライドするために使用することを述べているものは何もありません。

へのすべての参照は、こちらcolumn_idのドキュメントで確認できます。問題と思われる唯一のものはビューですall_tab_columns

all_ind_columnsビューにクエリを実行することにより、インデックスで使用されている列の順序を確認できます。ビューとの間に強制的な関係がないことを確認できます。column_positionこれは、列がインデックス作成コマンドでリストされている順序に由来します。column_id.

制約をバックアップするインデックスのチェックに特に関心がある場合は、次のようにすることができます。

select ac.owner, ac.table_name, ac.constraint_name, ac.index_owner,
    ac.index_name, aic.column_position, aic.column_name
from all_constraints ac
join all_ind_columns aic on aic.index_owner = coalesce(ac.index_owner, ac.owner)
    and aic.index_name = ac.index_name
order by 1, 2, 3, 6;

...必要に応じて所有者またはテーブルのフィルターを追加します。

于 2013-02-22T16:12:59.410 に答える