Я надеюсь, что это вопрос с более коротким ответом, чем «Читать книгу на 1000 страниц», но затем, если это реальная ситуация, то ударил меня этим.
Я не настоящий администратор баз данных, я разработчик программного обеспечения, который понимает, что нам нужен администратор баз данных, и тем не менее в магазине, в котором я работаю, нет администраторов баз данных. Однако дизайн нашей базы данных MS SQL, включающий несколько основных хранимых процедур, представляет собой гигантский беспорядок. Хранимые процедуры медленны, мы подозреваем, что в них есть ошибки, но мы даже не знаем, как они будут работать, поэтому мы не знаем, как их исправить.
Для начала я решил, что мы задокументируем, как все это должно работать, затем начнем модульное тестирование и создадим набор модульных тестов, которые помогут доказать, что хранимые процедуры действительно работают. Логика, которую они выполняют, является ключевой частью нашего приложения, можно сказать, это «жемчужина короны» основного продукта нашей компании, и то, как он работает, полностью не документировано.
Я ищу конкретную техническую документацию, которую профессиональный администратор баз данных мог бы ожидать или мог бы написать сам, если нужно, чтобы понять гигантскую сеть хранимых процедур, которые вызывают друг друга.
Какой обычный формат для документирования большой хранимой процедуры? Описание ожидаемых значений для каждого параметра In (т. Е. «Предварительные условия», «постусловия», т. Е. Для логических параметров, что изменяется при его включении или выключении и т. Д.)
Как обычно это документируют? Только комментарии SQL? Внешняя оснастка, которая специфична для этой цели? Внешняя «документация»? У нас нет никаких инструментов SQL, кроме MS SQL Management Studio, но нам интересно, есть ли инструмент, который улучшил бы понимание, документирование и тестирование нашей среды. Может быть, это лучший способ задать мой вопрос; Какой инструмент мне нужен, чтобы решить наш беспорядок?
Наша цель - уметь:
О. Используйте документацию, которую мы генерируем, или любые инструменты, которые мы добавляем в нашу среду, чтобы помочь понять, как должны работать процедуры, чтобы мы могли затем создать покрытие модульного тестирования для хранимых процедур.
Б. Покажите разработчикам клиентских приложений, как правильно вызывать каждую из этих сложных хранимых процедур.
C. Модульное тестирование наших хранимых процедур.