2010-06-07 6 views
1

HI,Performances sur les jointures dans linq

Je vais réécrire une procédure de stockage dans LINQ.

Ce que fait ce sp est de rejoindre 12 tables et d'obtenir les données et de les insérer dans une autre table.

il a 7 jointures externes gauche et 4 jointures internes. Et renvoie une ligne de données.

Maintenant question. 1) Quelle est la meilleure façon de réaliser cela joint linq. 2) pensez-vous que cela affecte les performances (il ne récupère qu'une ligne de données à un instant donné)

Veuillez nous contacter.

Merci SNA.

+0

Quel outil O/RM utilisez-vous? LINQ à SQL? – Steven

+0

Je ne voudrais pas réécrire ce proc stocké dans LINQ, sauf si vous avez une très bonne raison de le faire – BlackTigerX

Répondre

0

Vous pouvez vérifier this question pour les jointures multiples. Je préfère généralement la syntaxe lambda, mais YMMV. En ce qui concerne les performances: Je doute que la performance de la requête elle-même sera affectée, mais il peut y avoir des frais supplémentaires dans la détermination du plan d'exécution, car c'est une requête si compliquée.
Le plus grand succès en termes de performances sera probablement l'aller-retour supplémentaire de la base de données dont vous aurez besoin par rapport à la procédure stockée. Si je vous comprends bien, votre SP actuel fait le SELECT et INSERT tout à la fois. En utilisant LINQ to SQL ou LINQ to Entities, vous devrez d'abord récupérer les données avant de pouvoir les écrire dans l'autre table. Donc, cela dépend de votre utilisation si la réécriture est justifiée. Vous pouvez également ajouter des procédures stockées à votre modèle de données. Il sera exposé comme une méthode sur votre contexte de données.

Questions connexes