2013-03-29 9 views
12

最近主キーが索引ではないと考えられなくなりました。これらは一意制約とNULL制約の組み合わせです。そして今までは、私はPKカラムのインデックスを作成したことはありません。私の質問は、この列が多くのクエリのWHERE部分で使用される場合、PK列のインデックスを作成する必要があるかどうかです。Oracleの主キー列にインデックスを付ける必要があります

+2

主キー_are_ indexed。 。 選択UI * USER_CONSTRAINTS UC、USER_INDEXESのUI uc.table_nameは= 'MY_TABLE_NAME' とCONSTRAINT_TYPE = 'P' とui.TABLE_OWNER = uc.OWNER から:主キー制約をバックアップインデックスを表示するには – Mat

+1

ui.TABLE_NAME = uc.TABLE_NAME とui.INDEX_NAME = uc.INDEX_NAME; – rimsky

答えて

14

Oracleは索引を作成するか、既存の索引を使用できます。一意または一意でない索引が使用されるかどうかは、あなた次第です。

http://docs.oracle.com/cd/B28359_01/server.111/b28310/indexes003.htm#i1006566

プライマリキー自体はインデックスではない、ともユニーク制約である - 彼らは両方の制約があります。ただし、それらをサポートするためにインデックスが使用されます。

一意索引は、一意キー制約または主キー制約が存在しない場合に存在する可能性があるため、どちらかといえば異なるものであり、どちらの制約タイプもそれをサポートする索引が一意である必要はありません。

関連する問題