Хранимая процедура обслуживания - PullRequest
3 голосов
/ 22 мая 2009

На сервере sql ...

Должен ли я поддерживать хранимые процедуры через средство просмотра объектов в анализаторе запросов или как внешние текстовые файлы и почему?

Ответы [ 6 ]

4 голосов
/ 22 мая 2009

... еще один голос за текстовые файлы в системе контроля версий.

  • Огромным преимуществом является история изменений. Сравнение версий может дать вам представление о проблемах и сэкономить часы отладки, особенно из серии «Интересно, зачем они это сделали».
  • Если у вас возникла проблема в одном экземпляре базы данных, которую вы не видите в других, вы можете экспортировать хранимую процедуру, о которой идет речь, сравнить ее с тем, что находится в системе контроля версий, и убедиться, что вы согласны с другими экземплярами.
  • Это облегчает управление развертыванием кода в новом экземпляре базы данных. Например, вы можете написать задачу Ant для аудита вашей схемы базы данных, и у вас есть задача, которая выполняет код создания процедуры как шаг в этом процессе.
  • Вы можете посмотреть на источник процедуры без необходимости подключения к базе данных. Это может быть особенно ценно в сценариях восстановления.
  • Он обеспечивает соблюдение дисциплины, позволяющей сохранять скрипты доступными, вместо того, чтобы ваша команда могла вносить разовые изменения в инструменты графического интерфейса. Инструмент с графическим интерфейсом изменяет работу, но теряется навсегда, если не записывается в сценарии.
4 голосов
/ 22 мая 2009

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

Microsoft Visual Studio 2008 Database Edition делает именно это, позволяя не только управлять версиями сценариев базы данных, но и средствами для развертывания за один шаг, модульного тестирования и других интересных вещей.

1 голос
/ 22 мая 2009

Многое может зависеть от версии SQL Server, которую вы используете, и от того, насколько важно выполнить откат к предыдущей версии SQL.

Я обнаружил, что с SQL Server 2005+ их проще поддерживать в SQL Server Management Studio, поскольку все они интегрированы в .NET Framework.

Я считаю хранение резервных копий, поскольку внешние файлы - пустая трата времени, если вы регулярно создаете резервные копии своей базы данных.

Конечно, я полностью понимаю людей, желающих использовать что-то вроде SourseSafe в качестве дополнительного внешнего источника для исторических резервных копий.

0 голосов
/ 22 мая 2009

Либо.

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

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

Я надеюсь, что вы не имеете в виду в браузере объектов на производстве ...

0 голосов
/ 22 мая 2009

Имеется инструмент, который извлекает текст хранимых процедур на регулярной основе и сохраняет их в системе контроля версий.

Таким образом, вы получите лучшее из обоих миров. Ваши текстовые файлы существуют и находятся под контролем исходного кода, и вы можете гарантировать их актуальность, насколько это возможно. И если кто-то изменит ваши хранимые процедуры, не зная об этом (как босс, которого я обычно делал), вы очень быстро увидите это «недавними изменениями».

0 голосов
/ 22 мая 2009

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

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