venerdì, settembre 19, 2008

Basi di dati: Progettazione fisica di un database

Occorre ottimizzare molti parametri, alcuni specifici del DBMS

Ad esempio cache, suddivisione in file, ecc.

Creazione di INDICI

Gli indici sono un B-TREE che ordina alcuni campi di una tabella.

Possono essere UNIQUE (con vincolo di unicità) o no

Si creano con CREATE INDEX NomeIndice ON NomeTabella(ElencoCampiIndicizzati)

Si elimina con DROP INDEX NomeIndice

Vanno mantenuti (un indice non usato è un peso per il DB)

E' necessario inserire indici per le query che vengono fatte più spesso (per ottimizzarle)

L'accesso tramite indice è molto performante

Gli indici si dividono in vari tipi:

  • CLUSTERED (sono l'ordine fisico della tabella stessa) e UNCLUSTERED (solitamente residenti in una parte diversa della tabella)
  • DENSE (hanno un entry per ogni tupla della tabella), SPARSE (opposto)
  • SINGLE LEVEL (indice "flat"), MULTI LEVEL INDEX (indice organizzato ad albero)

Il DBMS definisce automaticamente un INDICE su ogni chiave primaria (di solito CLUSTERED)

E' abbastanza ragionevole mettere indici sulle chiavi esterne

Nessun commento: