2013-12-11 8 views
5

Moja tabela zawiera prawie 40 milionów rekordów., Z DML.Unikatowy vs nieunikalny indeks

Chcesz wiedzieć, który z tych Unikatowy lub nieunikalny indeks byłby lepszym rozwiązaniem do wdrożenia. Aby zapewnić lepszą wydajność.

Środowisko: Oracle 11g

+0

To zależy od Twoich wymagań. i jakie dane masz w kolumnie. –

Odpowiedz

-3

to całkowicie zależy od typu danych w tabeli, jeśli posiada dane gdzie wyjątkowość jest

wysoki następnie użyj B-tree indeks Bitmap innego użytku.

14

Jeśli to możliwe, użyj unikalnego indeksu. W przeciwnym razie użyj nieunikalnego indeksu.

Innymi słowy, jeśli możesz użyć unikalnego indeksu, powinieneś. Jeśli istnieje powód, dla którego konieczne może być nagrywanie duplikatów, to i tak nie masz wyboru.

Jeśli indeks jest gwarantowany jako unikalny, Oracle może przeprowadzić pewne optymalizacje planu zapytań, które nie są możliwe w przypadku nieunikalnego indeksu - na przykład, jeśli do sondowania określonej wartości wykorzystywany jest unikatowy indeks, firma Oracle może przerwać przetwarzanie dalej indeksuj bloki, gdy tylko znajdzie dopasowanie.

+0

Mam tabelę, na której wyszukiwane są dwie kolumny w warunku "i". Kombinacja tych 2 wartości nie może wystąpić ponownie w tabeli, ale nie dałem unikalnego ograniczenia. Czy lepiej będzie mieć na nich unikalny lub nieunikalny indeks? –

+0

@RachitGupta: odpowiedź nie różni się od tego, czy masz jedną kolumnę lub wiele kolumn w kluczu kandydata. –