Выполнять математические операции в T-SQL или во время выполнения - PullRequest
0 голосов
/ 14 марта 2011

В настоящее время я работаю над отчетом, в котором результаты этого отчета генерируются внутри хранимой процедуры.

Для этого отчета я возвращаю список записей, которые содержат числитель и знаменатель соответственно.Когда отчет отображается, фактический процентный результат (числитель / знаменатель) должен отображаться рядом с этими числами.

Вопрос состоит в том, является ли это большим выигрышем в производительности для генерации этих процентов внутри хранимой процедуры иони возвращают вычисленный процент или просто возвращают два числа, и среда выполнения для отчета генерирует процент?

Среда выполнения для отчета будет разной, в первую очередь это будет страница внутри приложения Silverlight, передаваемая через веб-службу WCF.В качестве альтернативы будет доступна опция просмотра отчетов rdlc, чтобы они могли просматривать отчет напрямую через браузер.

Ответы [ 3 ]

1 голос
/ 14 марта 2011

Трудно ответить на этот вопрос - в общем, я думаю, это не то, о чем вы бы беспокоились - в любом случае, миллисекунды.

Однако по соображениям здравого смысла я бы сделал этона сервере.Если расчет оказывает какое-либо влияние на бизнес, вы хотите, чтобы он был последовательным независимо от того, какая система запускает отчет.

О, и тест на округление - разные приложения округляются по-разному, часто неожиданным образом ...

0 голосов
/ 15 марта 2011

Если вы думаете о архитектуре, как MVVM, вам не следует делать это в процедуре и возвращать только значения, относящиеся к вашей модели. Затем вы расширили бы свою модель, чтобы она содержала вычисляемое поле.

Если вы ищете метод get-r-done, просто рассчитайте его в запросе. Так как вы в любом случае отправляете два значения, там нет добавленной стоимости (не то, что она будет в любом случае). Простое разделение не замедлит вас.

0 голосов
/ 14 марта 2011

Если вам не нужно выполнять запрос по результату и если это не сложный расчет, то я бы позволил клиенту рассчитать процент по двум причинам.

1- Это уменьшит объем данных, которые передаются по проводам.

2- Если вашему серверу приходится обрабатывать много запросов в секунду, это уменьшит его полезную нагрузку.

Однако в обоих случаях вы заметите изменения только тогда, когда задействован большой объем данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...