Comment créer un index dans SQL

Dans une base de données SQL, vous avez besoin d'un moyen rapide d'accéder aux dossiers d'intérêt. Disons, par exemple, que vous voulez regarder toutes les propositions de personnes prétendant être votre frère. En supposant qu'aucun de vos frères ont changé leurs noms de famille à des fins théâtrales, vous pouvez isoler ces offres baser votre recherche sur le contenu de la Nom de famille champ, comme indiqué dans la requête SQL ad hoc qui suit:

SELECT * FROM POWERWHERE NOM = 'Marx -

Cette stratégie peut ne pas fonctionner pour les propositions faites par demi-frères et beaux-frères loi, si vous avez besoin de regarder un domaine différent, comme le montre l'exemple suivant:

SELECT * FROM POWERWHERE HowKnown = 'beau-law'ORHowKnown =' demi-frère »-

SQL scanne la table une ligne à la fois, à la recherche d'entrées qui satisfont la clause état. Si la table POWER est grande (des dizaines de milliers de dossiers), vous pouvez retrouvez attendre un certain temps. Vous pouvez accélérer les choses en appliquant index à la table de POWER. (Un index est un tableau de pointeurs. Chaque ligne dans les points d'indice à une ligne correspondante dans le tableau de données.)

Vous pouvez définir un index pour toutes les différentes façons que vous voudrez peut-être d'accéder à vos données. Si vous ajoutez, modifiez ou supprimez des lignes dans la table de données, vous ne devez pas pour trier à nouveau la table - il vous suffit de mettre à jour les index. Vous pouvez mettre à jour un indice beaucoup plus vite que vous pouvez trier une table.

Après avoir établi un index avec la commande désirée, vous pouvez utiliser cet index pour accéder rangées dans le tableau de données presque instantanément.




Parce que le ProposalNumber domaine est unique et court, en utilisant ce champ est le moyen le plus rapide d'accéder à une fiche individuelle. Ces qualités le rendent idéal pour une clé primaire. Et parce que les clés primaires sont généralement le moyen le plus rapide d'accéder aux données, la clé primaire de tout et de chaque table doit toujours être indexé- Indices d'accès Les touches primaires automatiquement. Cependant, vous devez connaître le ProposalNumber de l'enregistrement que vous voulez.

Vous pouvez créer des index supplémentaires sur la base d'autres domaines, tels que Nom de famille, Code Postal, ou HowKnown. Pour une table que vous index sur Nom de famille, après une recherche trouve la première ligne contenant une Nom de famille de Marx, la recherche les a tous trouvés. Les clés d'index pour toute la Marx lignes sont stockées un après l'autre.

Vous pouvez récupérer Chico, Groucho, Harpo, Zeppo, et Karl presque aussi vite que vous pouvez obtenir les données sur Chico seul.

Indices ajoutent un surplus à votre système, ce qui ralentit les opérations. Vous devez équilibrer ce ralentissement contre la vitesse que vous gagnez en accédant à des dossiers à travers un index.

Voici quelques conseils pour choisir de bons champs d'indexation:

  • Indexer les champs que vous utilisez fréquemment pour accéder aux dossiers est toujours une bonne idée. Vous pouvez rapidement accéder aux dossiers sans trop de latence.

  • Ne vous embêtez pas la création d'index pour les champs que vous jamais utiliser les touches comme récupération. Création d'index inutiles est un gaspillage de temps et d'espace mémoire, et vous ne gagnez rien.

  • Ne pas créer des index pour les champs qui ne différencient pas un enregistrement de beaucoup d'autres. Par exemple, la BusinessOrCharity champ divise simplement les enregistrements de la table en deux catégories, il ne fait pas un bon indice.

L'efficacité d'un indice varie d'une application à l'autre. Si vous migrez une base de données d'une plateforme à une autre, les indices qui ont donné la meilleure performance sur le premier système ne peuvent pas effectuer le meilleur sur la nouvelle plate-forme. En fait, la performance peut être pire que si vous ne l'aviez pas indexé la base de données du tout.

Essayez différents schémas d'indexation pour trouver celui qui vous donne la meilleure performance globale, et optimiser vos indices de sorte que ni la vitesse, ni la vitesse de récupération de mise à jour souffrent de la migration.

Pour créer des index pour la table POWER, il suffit de sélectionner Oui pour Répertorié dans le volet Propriétés du champ de la fenêtre de création de table.

Accès fait deux tours automatiquement pratiques: Il crée un index pour Code Postal (parce que ce domaine est souvent utilisé pour les récupérations) et il indexe la clé primaire. (Ah, le progrès. Je dois l'aimer.)

Code Postal est pas une clé primaire et ne sont pas unique- nécessairement le contraire est vrai pour ProposalNumber. Vous avez déjà créé un index pour Nom de famille. Faites de même pour HowKnown parce que les deux sont susceptibles d'être utilisés pour les extractions.

Après avoir créé tous vos index, ne pas oublier de sauvegarder la nouvelle structure de la table avant de le fermer.

Si vous utilisez un outil de RAD autre que Microsoft Access, cette information ne vous concerne pas. Toutefois, l'ensemble du processus est assez similaire.


» » » » Comment créer un index dans SQL