Является ли использование хранимых процедур плохой практикой? - PullRequest
9 голосов
/ 19 ноября 2009

У нас есть приложение, написанное на C #, которое подключено к серверу ms sql. Мы используем для создания хранимых процедур для каждого вызова базы данных, но затем мы заметили, что использование хранимых процедур дает нам очень большой недостаток, мы не знаем, какие хранимые процедуры нам нужно обновить, если мы изменим нашу базу данных.

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

Ответы [ 12 ]

0 голосов
/ 19 ноября 2009

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

ИМХО хранимые процедуры неплохие, их можно использовать для многих полезных вещей, таких как триггеры, или для выполнения некоторых сложных запросов, когда вместо этого вам придется писать много запросов на стороне клиента. Но, конечно, нет ничего хорошего. Некоторые недостатки, которые я обнаружил: хранимые процедуры могут вызывать гораздо больше работы на стороне сервера (что иногда можно перенести на сторону клиента), а иногда их трудно поддерживать.

Но, с другой стороны, они очень полезны, когда когда-нибудь вам придется предоставить доступ к базе данных некоторым программистам, пишущим программное обеспечение, например, например. Java, который не сможет использовать все те классы БД, которые вы написали в C #. В этом случае полезно иметь некоторую логику в базе данных, чтобы вы могли использовать ее независимо от используемого клиента или языка.

0 голосов
/ 19 ноября 2009

Процедуры хранения, как правило, хорошая вещь:

  • Они более производительны, чем стандартные запросы, специально для определенных операций.
  • Они помогают отделить вашу команду разработчиков базы данных от вашей команды бизнес-дизайна.
  • Они дают вам хорошую защиту от инъекций sql
  • Они позволяют легко определять отдельные пользовательские разрешения для отдельных операций
...