Est-il une alternative à joint pour augmenter les performances?
Est-il une alternative à joint pour augmenter les performances?
Modifier (gbn): rejoignez-ou-corrélation-sous-requête-avec-existe-clause-qui-on-est-mieux
Pourquoi n'a-t-on pas mentionner sur les jointures de boucle imbriquée?
Avez-vous quelque chose de spécifique à l'esprit?
Pas de. juste une question générale,afin que je puisse améliorer mes compétences tout en écrivant join
Ensuite, vous avez besoin de fournir plus de détails concernant ce que vous pensez est la norme. Vous êtes à la recherche d'alternatives à joint ou d'autres façons d'écrire les jointures? Votre question n'est pas très concentré ou claire.
Pas de. juste une question générale,afin que je puisse améliorer mes compétences tout en écrivant join
Ensuite, vous avez besoin de fournir plus de détails concernant ce que vous pensez est la norme. Vous êtes à la recherche d'alternatives à joint ou d'autres façons d'écrire les jointures? Votre question n'est pas très concentré ou claire.
OriginalL'auteur hrishi | 2010-07-24
Vous devez vous connecter pour publier un commentaire.
À l'aide de (NOLOCK) sur les jointures peuvent augmenter les performances, si vous voulez/pouvez read uncommitted enregistrements.
Quand devez-vous utiliser "(nolock)"
OriginalL'auteur Gus Cavalcanti
Pas une "autre" façon de Jointures, mais une astuce pour augmenter la JOINTURE de la performance: dans SQL Server que beaucoup de gens ne savent pas est que vous devez toujours mettre un index non ordonné en clusters sur une colonne de clé étrangère. Plusieurs gens croient SQL Server effectue cette opération automatiquement - il pas.
Donc si vous avez une table
Customer
, il a probablement une clé primaire quelque chose commeCustomerID
. SQL Server va mettre un index sur automatiquement.Toutefois, si vous avez une table
Order
qui a une relation de clé étrangère avecCustomer
, il n'est par défaut pas d'index sur la colonneOrder.CustomerID
. Mais un tel indice est très utile et très pratique pour les jointures et les recherches, de sorte que c'est une meilleure pratique je recommande toujours: mettre un index sur tous vos colonnes de clé étrangère dans une table.OriginalL'auteur marc_s
Les stratégies de réduction de la performance de jointures:
Toutes ces stratégies pour optimiser spécifiques requêtes. Vous ne pouvez pas faire une solution généraliste qui peut améliorer tous requêtes.
OriginalL'auteur Bill Karwin
À partir de votre autre question
Si vous voulez une sortie de deux tables, puis vous avez l'option d'autres ensuite la REJOINDRE. La 2ème requête ici.
Si c'est lent, alors en général:
Bon conseil sur les pas de l'aide de SELECT *, je ne l'utilise jamais plus, de sélectionner uniquement les champs dont vous avez besoin et cela peut parfois énormément d'accélérer les requêtes.
OriginalL'auteur gbn
Point de vue syntaxique, il n'y a pas d'alternative, mais seulement quelques techniques qui pourraient vous aider concernant les performances de la requête, avec de très grands volumes de données:
OriginalL'auteur Mostafa Elmoghazi
Bases de données relationnelles sont optimisés pour l'utilisation de Jointures, de sorte que dans la plupart des cas, l'aide est le plus preformant chose que vous pouvez faire.
Si vos requêtes sont lents, vous avez besoin pour optimiser eux - peut-être vous manque un index ou deux, peut-être vous pouvez réécrire les clauses where pour réduire le nombre de lignes retournées.
Vous pouvez utiliser les sous-requêtes et des tables temporaires, mais les chances sont qu'une jointure serait encore plus rapide. Vous devrez tester dans votre propre environnement pour voir.
OriginalL'auteur Oded
En toute non-trivial DB application axée sur il n'y a pas moyen ... pour vous éviter les jointures.
Rejoint...eux-mêmes ne sont pas la cause racine du problème, mais la mauvaise performance pourrait être le résultat de quelque chose de mal demandes écrites à mal conçu à la base de données.
Oui...dans certains cas, les jointures encapsulé dans fonctions stockées peut être évité en utilisant préparé champs. C'est, si vous êtes sûr que vous allez être besoin d'une valeur résultante à partir d'un certain rejoindre pour une utilisation répétée,..vous pouvez ainsi calculer la fois et de les stocker pour une utilisation répétée.
En corrélation les Sous-requêtes sont une autre alternative.
En général, si vous êtes à la recherche d'aiguiser vos compétences ...question à vous poser est: Comment écrire des requêtes performantes ?
OriginalL'auteur Shankar R10N