Je veux être capable de rechercher une table assez rapidement en utilisant Entity Framework, disons si j'ai une table Contacts, une table JobsToDo et une table matricielle reliant les deux tables, par exemple Contacts_JobsToDo_Mtx et I spécifier deux clés étrangères dans la table Contacts_JobsToDo_Mtx, si je voulais rechercher cette table Mtx, ai-je besoin de spécifier un index sur les deux clés étrangères? Ou par le fait qu'ils sont deux clés étrangères sont-ils considérés indexés sur eux de toute façon? Est-ce que Entity Framework sera capable de rechercher rapidement dans la table Mtx sans avoir à spécifier un index sur les deux clés? Merci!Entity Framework utilisation des index et des clés étrangères
Répondre
Dépend de la base de données que vous avez, mais généralement (à partir de mon expérience SQL Server), non. Le simple fait d'utiliser Entity Framework ne fait pas magiquement disparaître vos restrictions SQL Server (ou potentiels pour les gains de vitesse!). Si la base de données sous-jacente est de la merde, la performance EF sera de la merde. Votre base de données doit être en bonne forme. Si vous appliquez simplement EF sur elle, les problèmes de performance ne disparaîtront pas soudainement.
Donc, je suppose que vous devrez encore faire preuve d'intelligence pour vous assurer d'avoir les indices appropriés en place pour que votre système fonctionne bien. EF peut seulement être aussi bon que la base de données sous-jacente est ....
Entity Framework 1 n'a rien à voir avec la création de votre schéma ou l'ajout de clés étrangères à vos tables "matricielles", communément appelées plusieurs à plusieurs. Entity Framwork 4.0 peut créer ces tables pour vous et aura les clés et les index requis.
Les index sont créés automatiquement pour toutes les clés primaires. Vous n'avez donc pas à vous soucier de la configuration de l'index correct si vous avez créé la table correctement.
Entity Framework écrit des requêtes optimisées pour 99% des scénarios CRUD courants. Si vous devenez fou avec les instructions esql ou linq, elles ne seront peut-être pas aussi optimisées, mais devraient tout de même fonctionner correctement avec un accès aux requêtes de petite et moyenne taille.
Entity Framework n'est pas responsable de l'utilisation des index corrects, c'est-à-dire de la tâche sous-jacente des optimiseurs de requêtes. Vous pouvez écrire des requêtes mal exécutées qui n'utilisent pas correctement les index mais c'est vraiment un cas limite dont je ne me soucierais pas jusqu'à ce que vous trouviez un problème.
TL: DR;
Entity Framework n'est pas responsable des tâches que vous lui demandez et fonctionne très bien dans la plupart des cas.
- 1. index sur des clés primaires et étrangères
- 2. relations clés étrangères dans Entity Framework
- 3. Entity Framework Insérer plusieurs clés étrangères
- 4. Entité Framework POCO avec des clés étrangères
- 5. Entity Framework sur une base de données sans clés étrangères
- 6. Comment gérer les clés étrangères avec Entity Framework
- 7. Gestion des clés étrangères
- 8. Indexation des clés étrangères
- 9. Puis-je implémenter des clés étrangères dans Entity Framework 4 au niveau de la couche d'entités?
- 10. LINQ to Entities attacher et détacher des entités clés étrangères
- 11. Clés étrangères et erreurs MySQL
- 12. Utilisation des entités de structure et Entity Framework
- 13. avoir de sérieux problèmes avec Entity Framework et les clés étrangères :(
- 14. L'ajout de données dans des tables comprend des clés étrangères, mais quelle nouvelle ligne a créé Entity Framework?
- 15. Création des relations dans Entity Framework
- 16. Entity Framework: Référentiel générique et clés primaires de table
- 17. Mappage FluentNHibernate des clés étrangères composites
- 18. Linq à enties, insérer des clés étrangères
- 19. Comment affecter des valeurs par défaut et définir des clés uniques dans Entity Framework 4 Designer
- 20. Obtenir des clés étrangères uniques dans Django?
- 21. MySQL: Comment faire des clés étrangères?
- 22. TDD avec HSQLDB - suppression des clés étrangères
- 23. Initialiser les listes déroulantes des clés étrangères
- 24. Traitement des clés étrangères par MySQL Workbench
- 25. Implémenter/utiliser des clés étrangères dans SQLite?
- 26. Entity Framework - problème étrange avec plusieurs clés étrangères mises en correspondance avec la même table
- 27. Entity Framework - Détacher et réattacher des entités?
- 28. Clés DB composites avec Entity Framework 4.0
- 29. SchemaExport, NHibernate et la suppression des clés étrangères
- 30. Métadonnées des services .NET RIA et clés étrangères