@beduin01

На сколько стоит увлекаться программированием функций самой БД?

Как я понимаю все современные БД позволяют писать на своем внутреннем языке определенный функции. Попутно вопрос - получается что любую функцию можно обернуть в триггер, так?

На сколько стоит заморачиваться с изучением\написанием непосредственно самих функций, если задачу можно решить с использованием непосредственно языка программирования?

1. В каких случаях целесообразно написание самих функций?

2. Что на счет скорости? Есть ли хоть какие-то тесты хранимых процедур vs внешних языков программирования?

3. На сколько вообще удобны/функциональны встроенный языки? Все ли можно на них делать? Или только узкий спектр задач?

4. Сложно ли отлаживать эти внутренние функции?
  • Вопрос задан
  • 174 просмотра
Пригласить эксперта
Ответы на вопрос 2
gbg
@gbg
Баянист. Тамада. Услуги.
Есть даже такой способ абстракции программы от данных - в программе ни единого запроса, а только вызовы хранимых процедур из БД. И тогда программисты остаются программистами, а администраторы хранения - администраторами хранения. Реструктуризация базы может вообще не задеть программистов.

Ну и пересылка данных по сети все же накладнее обработки прямо на сервере, так что огромные отчеты лучше аггрегировать на сервере БД, а не таскать пол-базы клиенту.
Ответ написан
begemot_sun
@begemot_sun
Программист в душе.
Написание функций целесообразно при обработке больших объемов данных, когда передача их по сети будет идти дольше чем сама обработка.

Написание хранимок вещь великая, но:
1. их нельзя подвести под версионный контроль
2. Если вся логика будет на БД, то рано или поздно нужно будет апгрейдить сервер с БД. В свою очередь если мы используем БД как хранилище (без обработки), то у нас будет больше времени подготовится к очередной смене архитектуры системы, когда БД в очередной раз будет узким местом.
3. Лучше в системе определять различные подсистемы ответственные за определенные бизнес-задачи, так вот обработка бизнес-логики не есть прямая задача базы данных.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы