7
votes

L'indexation d'une table SQL améliorera-t-elle les performances d'une déclaration LINQ?

excuses pour ce qui peut très bien être une question stupide.

Je suis juste intrigué quant à (a) indexera améliorera l'amélioration des performances (b) Comment améliorera-t-elle les performances et (c) pourquoi améliorera-t-elle les performances?

En outre, si cela améliore les performances, cela serait-il le cas de l'écran de Linq à SQL, Linq aux entités LINQ aux objets, etc., etc.

Encore une fois, s'il s'agit d'une question vraiment stupide, je m'excuse.


0 commentaires

5 Réponses :


4
votes

Il améliorera les performances si, et seulement si votre requête LINQ provoque l'exécution d'une instruction SQL pouvant utiliser l'index - car, lors de l'utilisation de LINQ-TO-SQL, votre requête LINQ est traduite sur un SQL Déclaration (d'où le nom).

Par exemple, la requête suivante bénéficierait évidemment d'un index sur la colonne de dernière nom de la table des clients. P>

var results = from c in db.Customers
    where c.LastName == 'Smith'
    select c;


1 commentaires

Si votre support de support est une base de données, alors oui - l'indexation peut aider les performances.



0
votes

Cela pourrait améliorer les performances si vous indexez correctement. LINQ génère simplement une déclaration SQL dans les coulisses ... Si la déclaration utilise votre index, elle améliorera la performance ... si ce n'est pas le cas.


0 commentaires

0
votes

Afin d'améliorer les performances, l'indexation doit être utilisée intelligemment. Par exemple. Vous devez indexer les colonnes de clés que vous interrogez ou joignant par.

http://www.sql-server-performance.com/tips /ptimizizing_indexes_general_p1.aspx

Indexation améliorerait généralement les performances de la requête , mais augmente légèrement Insérer et Mettre à jour les temps , puisque l'index doit être ré-calculé.


0 commentaires

1
votes

Comme tout SQL - cela dépend.

Si vous avez une petite table, cela ne comporte pas vraiment (la valeur actuelle pour "petit" est <3000 lignes).

Si votre requête reviendra plus de 30% des lignes d'une table, il sera probablement plus rapide sans index.

Toutefois, si vous souhaitez sélectionner une ou deux lignes particulières d'une grande table, indexez certaines des colonnes que vous utilisez dans l'instruction WHERE (les arguments de recherche que vous passez à Linq) seront considérablement accélérables.

Également si vous rencontrez des tables de jointure fréquemment que les prédicats de jointure (les colonnes utilisées dans l'instruction "ON" pour la table jointe à la table) doivent être indexées. Cela peut réduire le temps de réponse sur certaines requêtes d'heures en secondes.


0 commentaires

0
votes

LINQ à SQL Générez une instruction SQL, vous pouvez voir cette instruction dans différents utilitaires tels que LINQ Pad . Lorsque vous interrogez sur SQL Server, les index amélioreront certainement les performances.

  • indexera améliorera les performances - Oui.
  • Comment va-t-il améliorer la performance - Lisez sur Index.
  • pourquoi va-t-il améliorer les performances? - I vraiment n'a pas de réponse de cela question.

    aussi, si cela améliore performance, serait-ce le cas à travers le tableau pour Linq à SQL, LINQ aux entités, Linq aux objets, etc., c.

    Réponse de ceci est quelle est la relation de la table SQL avec un objet?


0 commentaires