Espero que esta sea una pregunta con una respuesta más corta que "Leer un libro de 1000 páginas", pero luego, si esa es la situación real, entonces golpéenme.
No soy un DBA real, soy un desarrollador de software que se está dando cuenta de que necesitamos un DBA y, sin embargo, la tienda en la que trabajo no tiene DBA. Sin embargo, nuestro diseño de base de datos MS SQL que incluye varios procedimientos almacenados centrales es un desastre enorme. Los procedimientos almacenados son lentos, sospechamos que tienen errores, pero ni siquiera sabemos cómo se espera que funcionen, por lo que no sabemos cómo solucionarlos.
Como principio, he decidido documentar cómo se supone que debe funcionar todo, luego comenzaremos las pruebas unitarias y crearemos un conjunto de pruebas unitarias que ayuden a demostrar que los procedimientos almacenados realmente funcionan. La lógica que realizan es una parte clave de nuestra aplicación, se podría decir que son las "joyas de la corona" del producto principal de nuestra empresa, y la forma en que funciona es completamente indocumentada.
Estoy buscando la documentación técnica específica que un DBA profesional podría esperar que exista, o podría escribirse, si fuera necesario, para comprender una red gigante de procedimientos almacenados que se llaman entre sí.
¿Cuál es el formato habitual para documentar un procedimiento almacenado grande? Descripción de los valores esperados para cada parámetro In (es decir, "condiciones previas", "condiciones posteriores", es decir, para los parámetros booleanos, ¿qué cambia cuando lo enciende o apaga, etc.?)
¿Cómo se suele documentar? ¿Solo comentarios de SQL? ¿Herramientas externas específicas para el propósito? "Documentación" externa? No tenemos herramientas de SQL, aparte del estudio MS SQL Management, pero nos preguntamos si existe una herramienta que mejore la comprensión, la documentación y las pruebas de nuestro entorno. Tal vez esa sea una mejor manera de hacer mi pregunta; ¿Qué herramienta necesito para resolver nuestro desorden?
Nuestro objetivo es poder:
A. Use la documentación que generamos, o cualquier herramienta que agreguemos a nuestro entorno, para ayudar a comprender cómo se supone que funcionan los procedimientos, para que luego podamos crear una cobertura de prueba unitaria para los procedimientos almacenados.
B. Muestre a los desarrolladores de aplicaciones cliente cómo llamar adecuadamente a cada uno de estos complejos procedimientos almacenados.
C. La unidad prueba nuestros procedimientos almacenados.