Oracle Créer un index

Oracle Creer Un Index



Dans les bases de données Oracle, un index fait référence à une structure de données qui accélère la vitesse des opérations de récupération de données sur une table de base de données. Cependant, cela peut se traduire par des opérations d'écriture et un espace de stockage supplémentaires sur votre base de données.

Un exemple où un index de base de données serait utile est dans un système de gestion de la relation client.







Dans un tel système, nous pouvons avoir une table de base de données qui stocke les informations sur les clients. Cela pourrait inclure le nom, l'adresse, les méthodes de paiement, les coordonnées, etc.



Si la table contient de nombreux enregistrements, peut-être des millions, la recherche d'informations spécifiques sur les clients dans la base de données peut prendre beaucoup de temps et de ressources. Il s'agit d'un phénomène négatif, en particulier dans les bases de données où les performances sont essentielles.



Pour contourner cela, nous pouvons utiliser un index de base de données.





Par exemple, nous pouvons créer un index sur la colonne du nom du client qui permettrait au système de base de données de trouver et de récupérer rapidement les informations d'un client spécifique à l'aide du nom. Par conséquent, au lieu que le moteur de base de données parcoure toutes les lignes et colonnes de la table, il utilise uniquement l'index pour rechercher des informations sur les clients.

Dans ce didacticiel, vous apprendrez à utiliser la commande CREATE INDEX dans la base de données Oracle pour initialiser un nouvel index.



Oracle Créer une instruction d'index

Voici la syntaxe de l'instruction CREATE INDEX dans les bases de données Oracle :

CREATE INDEX nom_index
ON nom_table (colonne1, colonne2, ...);

La syntaxe ci-dessus crée un index nommé nom_index sur la table avec le nom nom_table en utilisant les colonnes spécifiées (colonne1, colonne2, etc.) comme clé de l'index.

Dans Oracle, une clé primaire est une colonne ou un ensemble de colonnes qui identifie de manière unique chaque ligne d'une table. Par défaut, Oracle crée automatiquement un index unique sur les colonnes de clé primaire d'une table pour appliquer la contrainte d'unicité et améliorer les performances des recherches de clé primaire.

Cependant, dans certains cas, vous devrez peut-être créer manuellement un nouvel index pour une table spécifique.

Voyons quelques exemples de la façon dont nous pouvons y parvenir.

Exemple de création d'index Oracle

Supposons que nous ayons une table contenant des informations sur les employés, comme indiqué dans la sortie ci-dessous :

sélectionnez prénom, nom, salaire, date_d'embauche parmi EMPLOYÉS ;

Oracle Créer un index pour une seule colonne

Supposons que nous souhaitions créer un index en utilisant la colonne first_name. Nous pouvons exécuter une requête comme indiqué :

créer l'index first_name_lookup sur EMPLOYEES(FIRST_NAME);

Cette instruction CREATE INDEX crée un index nommé first_name_lookup sur la table EMPLOYEES, en utilisant la colonne FIRST_NAME comme clé de l'index. Cet index peut être utilisé pour améliorer les performances des requêtes qui recherchent les employés par leur prénom.

Une fois l'index créé, nous pouvons l'utiliser pour rechercher un employé spécifique, comme indiqué :

SELECT prénom, nom, salaire, date_embauche
DES employés
WHERE first_name = 'William';

Résultat:

Sans l'index first_name_lookup, le système de base de données devrait parcourir l'intégralité de la table EMPLOYEES pour trouver toutes les lignes où la colonne FIRST_NAME est égale à 'William'. Cependant, avec l'index en place, le système de base de données peut rechercher rapidement les lignes dans le index en utilisant la valeur 'John' comme clé, puis récupérez les lignes demandées dans la table, ce qui sera beaucoup plus rapide.

Vous pouvez afficher les étapes utilisées lors de la création de la requête à l'aide de la commande d'explication du plan comme indiqué :

expliquer le plan pour SELECT prénom, nom, salaire, date_d'embauche
DES employés
WHERE first_name = 'William';

Plan de requête résultant :

Exemple 2 – Oracle Create Index avec plusieurs colonnes

De même, nous pouvons créer un index composé de plusieurs colonnes dans une table donnée. Par exemple, supposons que nous voulions créer un index composé des colonnes first_name et last_name.

Nous pouvons utiliser le code comme indiqué :

créer un index multi_lookup sur EMPLOYEES(FIRST_NAME, LAST_NAME);

Cette instruction CREATE INDEX crée un index nommé multi_lookup sur la table EMPLOYEES, en utilisant les colonnes FIRST_NAME et LAST_NAME comme clé de l'index.

Une fois créé, nous pouvons utiliser cet index comme indiqué dans l'exemple de requête comme indiqué :

SELECT prénom, nom, salaire, date_embauche
DES employés
WHERE first_name = 'William' AND last_name = 'Smith';

Valeur résultante :

Et là, vous avez une méthode pour accélérer vos requêtes de base de données en utilisant des index pour limiter la portée de la recherche.

Conclusion

L'instruction CREATE INDEX dans Oracle nous permet de créer un index sur une table pour améliorer les performances des opérations de récupération de données. Cependant, bien que les index puissent améliorer les performances des requêtes, ils entraînent également des pénalités d'espace de stockage, entraînant des opérations de vitesse d'écriture réduites, utilisez-les uniquement lorsque cela est nécessaire.