Je sais en général, il est une bonne pratique de se déplacer autant que possible le traitement de Sql Server à l'application (dans mon cas ASP.NET). Cependant, que faire si le traitement au niveau de l'application signifie que plus de 30 paramètres supplémentaires sont transmis au serveur Sql. Dans ce cas, vaut-il la peine de déplacer le traitement vers le serveur Sql?Sql traitement par rapport à un traitement ASP.NET Runtime
Voici le dilemme spécifique que je suis face - procédure qui offrira une meilleure performance globale?
CREATE PROCEDURE MyProc1
@id int
AS BEGIN
UPDATE MyTable
SET somevalue1 = somevalue1 + 1,
somevalue2 = somevalue2 + 1,
somevalue3 = somevalue3 + 1,
...
somevalueN = somevalueN + 1
WHERE id = @id
END
Ou
CREATE PROCEDURE MyProc2
@id int,
@somevalue1 int,
@somevalue2 int,
@somevalue3 int,
...
@somevalueN int
AS BEGIN
UPDATE MyTable
SET somevalue1 = @somevalue1,
somevalue2 = @somevalue2,
somevalue3 = @somevalue3,
...
somevalueN = @somevalueN
WHERE id = @id
END
J'utilise un hébergement géré, mais je suppose qu'il est valide de supposer que Sql Server et l'exécution ASP.NET se trouvent sur la même machine, de sorte que le transfert de données entre les deux seraient probablement assez rapide/négligeable (ou est-ce).
Les 30 paramètres sont fondamentalement nombreNuméroRésultats pour différents articles. Ainsi, chaque fois qu'un utilisateur de mon application Web attribue une nouvelle note à itemN, totalNumberOfRatingsItemN est incrémenté de 1. Dans la plupart des cas, la note sera attribuée à plusieurs éléments (mais pas nécessairement tous), donc totalNumberOfRatings n'est pas identique pour différents éléments.
Quelles sont ces valeurs de 30+ que vous incrémentez? Cela peut indiquer que votre schéma de base de données doit être amélioré. –