Les index vont permettre d’accéder plus rapidement aux différentes informations. Cependant la mise à jour des index représente un coût non négligeable pour le moteur de base de données. Il convient donc de définir des index sur les colonnes fréquemment impliquées dans des restrictions et des tris. Dans un premier temps il est préférable de travailler ‘a minima’. Ainsi seuls les colonnes participant à aux contraintes de clés étrangères seront indexés.
La description des différents index à définir est donnée dans le tableau suivant
| Nom de l'index | Table | Colonne |
|---|---|---|
| ix_films_categories | Films | categorie |
| ix_films_realisateurs | Films | realisateur |
| ix_films_producteurs | Films | producteur |
| ix_films_spectateurs | Films | spectateur |
| ix_acteurs_artistes | Acteurs | artiste |
| ix_acteurs_films | Acteurs | film |
| ix_exemplaires_films | Magasin.Exemplaires | film |
| ix_details_exemplaires | Magasin.Details | exemplaire |
| ix_details_fiches | Magasin.Details | fiche |
| ix_fiches_clients | Magasin.Fiches | client |
Les index sont toujours associés à la table qui possède la ou les colonnes indexées. Il est donc normal que les index ne soient pas définis sur un schéma.
Le script suivant permet de réaliser la création des différents index :
use Video; go CREATE INDEX ix_films_categories ON Films(categorie); CREATE INDEX ix_films_realisateurs ON Films(realisateur); CREATE INDEX ix_films_producteurs ON Films(producteur); CREATE INDEX ix_films_spectateurs ON Films (spectateur); CREATE INDEX ix_acteurs_artistes ON Acteurs(artiste); CREATE INDEX ix_acteurs_films ON Acteurs(film); CREATE INDEX ix_exemplaires_films ON Magasin.Exemplaires(film); CREATE INDEX ix_details_exemplaires ON Magasin.Details(exemplaire); CREATE INDEX ix_details_fiches ON Magasin.Details(fiche); CREATE INDEX ix_fiches_clients ON Magasin.Fiches(client);