Spero che questa sia una domanda con una risposta più breve di "Leggi un libro di 1000 pagine", ma poi, se questa è la situazione reale, allora mi colpirà.
Non sono un vero DBA, sono uno sviluppatore di software che sta realizzando che abbiamo bisogno di un DBA, eppure il negozio in cui lavoro ha zero DBA. Tuttavia, la progettazione del nostro database MS SQL, incluse diverse procedure memorizzate di base, è un casino enorme. Le procedure memorizzate sono lente, sospettiamo che abbiano dei bug, ma non sappiamo nemmeno come dovrebbero funzionare, quindi non sappiamo come risolverli.
All'inizio ho deciso di documentare come dovrebbe funzionare tutto, quindi inizieremo i test unitari e costruiremo una serie di test unitari che aiutano a dimostrare che le procedure memorizzate funzionano davvero. La logica che eseguono è una parte fondamentale della nostra applicazione, si potrebbe dire, sono i "gioielli della corona" del prodotto principale della nostra azienda e il modo in cui funziona è completamente privo di documenti.
Sto cercando la documentazione tecnica specifica che un DBA professionale potrebbe aspettarsi di avere, o potrebbe scrivere se stesso, se fosse necessario, per comprendere una gigantesca rete di procedure memorizzate che si chiamano a vicenda.
Qual è il solito formato per documentare una procedura memorizzata di grandi dimensioni? Descrizione dei valori previsti per ciascun parametro In (ovvero "precondizioni", "postcondizioni", ovvero per parametri booleani cosa cambia quando lo si accende o si spegne, ecc.)
Come si documenta di solito? Solo commenti SQL? Strumenti esterni specifici allo scopo? "Documentazione" esterna? Non disponiamo di strumenti SQL, oltre a MS SQL Management Studio, ma ci chiediamo se esiste uno strumento che possa migliorare la comprensione, la documentazione e il test del nostro ambiente. Forse è un modo migliore di porre la mia domanda; Di quale strumento ho bisogno per risolvere il nostro pasticcio?
Il nostro obiettivo è essere in grado di:
A. Utilizza la documentazione che generiamo o qualsiasi altro strumento che aggiungiamo al nostro ambiente, per aiutare a capire come dovrebbero funzionare le procedure, così possiamo continuare a creare una copertura di test unitari per le procedure memorizzate.
B. Mostrare agli sviluppatori dell'app client come chiamare correttamente ciascuna di queste complesse procedure memorizzate.
C. Unit test delle nostre procedure memorizzate.