1
votes

Question SQL sur les index. Comment appeler l'index que j'ai créé

Comment puis-je appeler les index que j'ai créés pour une table en SQL?

Par exemple, j'ai créé un index:

CREATE INDEX idx_pname ON Persons (LastName, FirstName);

Comment puis-je l'appeler?


6 commentaires

Vous ne l'appelez pas. La base de données l'utilisera si le moteur pense que cela aidera.


En fonction de la saveur de base de données que vous utilisez, vous pourrez peut-être ajouter un indice à une requête pour indiquer à l'optimiseur SQL qu'il doit utiliser l'index, mais ce n'est généralement pas nécessaire, car le SQL L'optimiseur est assez intelligent. --- En fonction également de la saveur de base de données que vous utilisez, vous pouvez demander au moteur de base de données de vous montrer comment il a l'intention d'exécuter la requête, y compris les index qui seront utilisés, le cas échéant. Ceci est généralement appelé Explain Plan ou Analyze SQL ou quelque chose comme ça, en fonction de la saveur de la base de données et / ou des outils utilisés pour le faire.


Pourquoi devrais-je baliser mon SGBD


Merci, j'ai ajouté la balise rdbms


Avez-vous lu le lien de a_horse_with_name? Il ne dit pas d'ajouter la balise «rdbms», mais d'ajouter la balise pour le SGBD que vous utilisez. Comment demander exemple minimal reproductible centre d'aide PS Cela ne montre aucun effort de recherche.


J'ai ajouté la balise "edbms". Je pense que c'est plus directif que "dbms"


3 Réponses :


2
votes

Les index sont des structures de données d'arrière-plan, que vous ne pouvez pas appeler directement. Ils seront utilisés en interne par la requête, pour obtenir des données, s'il trouve que l'index est un bon moyen d'obtenir les données de la manière optimale.

Si vous voulez forcer l'optimiseur de requête à exploiter un index, vous pouvez utiliser indice d'index. Voici un exemple ci-dessous.

EXEC sp_helpindex 'dbo.Persons'

Mais, je suggérerais toujours de ne pas utiliser d'indice d'index, car cela peut entraîner de nombreux problèmes.

  • Lorsque les statistiques changent également, le fait de forcer un index entraînera des problèmes de performances
  • Si l'index est supprimé, la requête ne fonctionnera pas

Mais, si vous voulez voir quels index sont présents sur une table, vous pouvez utiliser sp_help pour voir les informations de la table.

EXEC sp_help 'dbo.Persons'


4 commentaires

@tallamtharunsai, s'il répond à votre question, veuillez le marquer comme réponse, cela sera donc utile pour les autres à l'avenir


Bien sur. Je le ferai.


C'est fait. Encore merci


Bien sur. Passez une bonne journée Monsieur.



1
votes

Merci pour les réponses. Je l'ai compris. Donc, fondamentalement, la base de données utilise des index s'ils tombent, ils doivent appeler. Ceci est utile pour l'optimisation de la recherche de requêtes. Nous allons simplement créer un index si nous sentons que cela s'appelle plus ou il sera utilisé plus fréquemment.


1 commentaires

Cela m'a vraiment beaucoup aidé



1
votes

Les index définis sur les champs appartenant à la table de la base de données font partie du schéma de la base de données et les index sont définis dans le but d'accélérer les performances des opérations de récupération de données à partir des tables de base de données lorsque les champs indexés sont recherchés dans un ordre de tri spécifique en fonction de la définition de l'index et accélèrent traitement lorsque la recherche s'arrête une fois que l'enregistrement correspondant est trouvé. Ainsi, dans le cadre du plan d'exécution de la requête, les index sont appliqués en fonction de la définition de la requête de sélection.

Pour déterminer si les index sont utilisés dans l'opération de sélection, une instruction explique est utilisée

EXPLAIN SELECT statement


0 commentaires