использовать функцию sql server или сущность каркаса запросов для расчета в базе данных? - PullRequest
0 голосов
/ 02 февраля 2012

У меня есть проект Asp.net со сложным расчетом в базе данных. например: мне нужно рассчитать зарплату персонала. Это действие запроса для Рассчитать зарплату персонала является очень длинным и сложным, потому что должно рассчитываться рабочее время персонала Также, отпуск и командировки в месяц. мой вопрос: я использую функцию SQL Server или запрос сущности платформы для этого расчета? Какая производительность лучше?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2012

Невозможно ответить.

В целом:

  • SQL отлично подходит для вычисления стандартных элементов без бизнес-логики. Группировка по дате, статистике и т. Д.

  • Если вы сталкиваетесь с юридическими проблемами, когда принимаете много решений, обслуживание и т. Д. Лучше выполнять в приложении. Кроме того, потому что SQL сложнее отлаживать и потому что они могут измениться. Если вы растете, у вас может быть разная логика для разных типов людей - много решений, которые легче сделать, когда разные группы людей запускают разные сценарии, закодированные в разных классах.

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

Я думаю, что это лучше сделать с более логичным программированием, т. Е. Вне SQL. Это также не много данных для обработки там, если вы не большая компания.

Какая производительность лучше?

Кого это волнует?

SQL будет лучше, но вопрос в том, имеет ли это значение. Если вам требуется 5 минут один раз в месяц и 1 минута на сервере sql, то сервер SQL лучше, но это не имеет значения. Ориентированные на производительность архитектуры важны - когда это имеет значение. В этом случае я сомневаюсь, что это так. Скорее всего, вы можете рассчитать более 1 сотрудника в секунду за пределами сервера SQL на поток. Современный настольный компьютер высшего класса = 12 потоков = 12 человек в секунду = 720 человек в минуту. Вы можете легко взять ночь (8 часов) один раз в месяц для расчета. Сделай математику сам. Производительность здесь в основном не проблема.

Подобные вещи делаются пакетными в любом случае - вы делаете ночные или ежемесячные партии, а затем у вас есть все время (запустите его в начале месяца, закончено). Это преждевременная оптимизация, потому что это проблема только с 10.000 человек в штате. Я бы больше пошел на обслуживание в долгосрочной перспективе, в то время как юридическая и договорная сторона со временем меняется.

0 голосов
/ 02 февраля 2012

Я думаю, что лучше сделать расчет в БД. Однако это зависит от того, какой тип расчета вы хотите выполнить.

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