Oracle

2013-03-29 33 views
12

'daki birincil anahtar sütunlarını dizine eklemem Gerekirse, Birincil Anahtarlar'ın dizin olmadığını, benzersiz ve Boş kısıtlarının bir bileşimi olduğunu düşünmeyi bıraktım. Ve şimdiye kadar, hiç bir zaman PK sütunları için dizin oluşturdum. Sorum şu: eğer bu sütun çok sayıda sorgunun WHERE bölümünde kullanılacaksa, PK sütunları için dizin oluşturmalıyım.Oracle

+2

Birincil anahtarlar _are_ dizinine. – Mat

+1

birincil anahtar kısıtlaması yedekler Dizini görmek için:. seçme ui * USER_CONSTRAINTS uc dan , ui nerede uc.table_name = 'MY_TABLE_NAME' ve constraint_type = 'P' ve ui.TABLE_OWNER = uc.OWNER USER_INDEXES ve ui.TABLE_NAME = uc.TABLE_NAME ve ui.INDEX_NAME = uc.INDEX_NAME; – rimsky

cevap

14

Oracle sizin için bir dizin oluşturacak veya varolan birini kullanacaktır. Benzersiz veya benzersiz olmayan bir dizin kullanılıp kullanılmadığı size kalmış.

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

Birincil anahtar kendisi bir dizin değildir ve ne de eşsiz bir sınırlamadır - ikisi de kısıtlamalar vardır. Ancak onları desteklemek için bir indeks kullanılır. benzersiz veya birincil anahtar kısıtlaması yokluğunda mevcut gibi

benzersiz bir dizin

oldukça farklıdır, ve her iki kısıtlama türü indeksi benzersiz destekleyici gerektirir.