Espero que essa seja uma pergunta com uma resposta mais curta do que "Leia um livro de 1000 páginas", mas, se essa for a situação real, acerte-me com ela.
Não sou um DBA real, sou um desenvolvedor de software que está percebendo que precisamos de um DBA e, no entanto, a loja em que trabalho tem zero DBAs. No entanto, nosso design de banco de dados MS SQL, incluindo vários procedimentos armazenados principais, é uma bagunça gigante. Os procedimentos armazenados são lentos, suspeitamos que eles tenham bugs, mas nem sabemos como eles devem funcionar, portanto, não sabemos como corrigi-los.
Para começar, decidi que documentaremos como tudo deve funcionar; depois, iniciaremos o teste de unidade e criaremos um conjunto de testes de unidade que ajudarão a provar que os procedimentos armazenados realmente funcionam. A lógica que eles executam é uma parte essencial da nossa aplicação, você poderia dizer, são as "joias da coroa" do principal produto da nossa empresa, e a maneira como funciona é completamente indocumentada.
Estou procurando a documentação técnica específica que um DBA profissional pode esperar que exista, ou possa escrever por conta própria, se necessário, para entender uma gigantesca rede de procedimentos armazenados que se chamam.
Qual é o formato usual para documentar um procedimento armazenado grande? Descrição dos valores esperados para cada Parâmetro In (por exemplo, "pré-condições", "pós-condições", ou seja, para parâmetros booleanos, o que muda quando você o liga ou desliga, etc?)
Como se costuma documentar isso? Apenas comentários SQL? Ferramentas externas específicas para o objetivo? "Documentação" externa? Não temos ferramentas SQL, além do estúdio MS SQL Management, mas estamos nos perguntando se existe uma ferramenta que melhore a compreensão, a documentação e o teste de nosso ambiente. Talvez seja a melhor maneira de fazer minha pergunta; Qual ferramenta eu preciso para resolver nossa bagunça?
Nosso objetivo é ser capaz de:
R. Use a documentação que geramos, ou quaisquer ferramentas que adicionamos ao nosso ambiente, para ajudar a entender como os procedimentos devem funcionar, para que possamos criar uma cobertura de teste de unidade para os procedimentos armazenados.
B. Mostre aos desenvolvedores do aplicativo cliente como chamar adequadamente cada um desses procedimentos armazenados complexos.
C. Teste de unidade de nossos procedimentos armazenados.