2013-12-11 6 views
5

La mia tabella contiene quasi 40 milioni di record., Con DML.Indice univoco vs non univoco

Vorrei sapere quale di questi indici Unici o non univoci sarebbe l'opzione migliore per l'implementazione. Per dare prestazioni migliori.

Ambiente: Oracle 11g

+0

Dipende dalle vostre esigenze. e che tipo di dati hai nella colonna. –

risposta

-3

questo dipende interamente dal tipo dei dati nella tabella se ha dati in cui unicità è

alta quindi usare B-tree uso altro indice bitmap.

14

Se possibile, utilizzare un indice univoco. Altrimenti, usa un indice non univoco.

In altre parole, se è possibile utilizzare un indice univoco, è necessario. Se c'è qualche motivo per cui potrebbe essere necessario registrare dati duplicati, non è comunque possibile scegliere.

Se l'indice è garantito univoco, Oracle è in grado di eseguire determinate ottimizzazioni del piano di query che non sono possibili con un indice non univoco, ad esempio se un indice univoco viene utilizzato per rilevare un determinato valore, Oracle può interrompere ulteriormente l'elaborazione i blocchi indice non appena trova una corrispondenza.

+0

Ho una tabella in cui vengono ricercate due colonne in "e" condizione. Una combinazione di questi 2 valori non può ripetersi nella tabella, tuttavia non ho dato un vincolo univoco. Sarà meglio avere un indice unico o non unico su di essi? –

+0

@RachitGupta: la risposta non è diversa se si dispone di una colonna o più colonne in una chiave candidata. –