Я знаю, что в целом рекомендуется переместить как можно больше обработки с Sql Server в приложение (в моем случае ASP.NET). Однако что, если обработка на уровне приложения означает передачу еще 30 дополнительных параметров на сервер Sql. В этом случае стоит ли переместить обработку на сервер Sql?Обработка Sql против ASP.NET Обработка времени
Вот особая дилемма, с которой я столкнулся - какая процедура предложит лучшую производительность в целом?
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
Или
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
Я использую управляемый хостинг, но я предполагаю, что это справедливо предположить, что Sql Server и среда выполнения ASP.NET находятся на одном компьютере, так что передача данных между два, вероятно, будут довольно быстрыми/пренебрежимыми (или это).
30 параметров в основном totalNumberOfRatings для разных предметов. Поэтому всякий раз, когда пользователь моего веб-приложения дает новый рейтинг для элемента itemN, totalNumberOfRatingsItemN увеличивается на 1. В большинстве случаев рейтинг будет присвоен нескольким элементам (но не обязательно всем), поэтому totalNumberOfRatings не одинаковы для разных элементов.
Каковы эти 30 + значения, которые вы увеличиваете? Это может быть признаком того, что ваша схема базы данных нуждается в улучшении. –