Ich hoffe, dies ist eine Frage mit einer kürzeren Antwort als "Ein 1000-Seiten-Buch lesen", aber wenn das die wirkliche Situation ist, dann schlagen Sie mich damit.
Ich bin kein echter DBA, ich bin ein Softwareentwickler, der erkennt, dass wir einen DBA brauchen, und dennoch hat der Shop, in dem ich arbeite, keine DBAs. Unser MS SQL-Datenbankdesign mit mehreren gespeicherten Kernprozeduren ist jedoch ein großes Durcheinander. Die gespeicherten Prozeduren sind langsam, wir vermuten, dass sie Fehler aufweisen, aber wir wissen nicht einmal, wie sie funktionieren sollen, daher wissen wir nicht, wie sie behoben werden können.
Zunächst habe ich beschlossen, zu dokumentieren, wie alles funktionieren soll. Dann werden wir mit Unit-Tests beginnen und eine Reihe von Unit-Tests erstellen, die beweisen, dass die gespeicherten Prozeduren tatsächlich funktionieren. Die Logik, die sie ausführen, ist ein wesentlicher Bestandteil unserer Anwendung. Man könnte sagen, es sind die "Kronjuwelen" des Hauptprodukts unseres Unternehmens, und die Funktionsweise ist völlig undokumentiert.
Ich suche nach der spezifischen technischen Dokumentation, die ein professioneller DBA möglicherweise erwartet, oder schreibt sich selbst, wenn er muss, um ein riesiges Netz gespeicherter Prozeduren zu verstehen, die sich gegenseitig aufrufen.
Was ist das übliche Format für die Dokumentation einer großen gespeicherten Prozedur? Beschreibung der erwarteten Werte für jeden In-Parameter (dh "Vorbedingungen", "Nachbedingungen", dh für boolesche Parameter, was ändert sich, wenn Sie ihn ein- oder ausschalten usw.?)
Wie dokumentiert man das normalerweise? Nur SQL-Kommentare? Externe Werkzeuge, die spezifisch für den Zweck sind? Externe "Dokumentation"? Wir haben keine anderen SQL-Tools als MS SQL Management Studio, aber wir fragen uns, ob es ein Tool gibt, mit dem wir unsere Umgebung besser verstehen, dokumentieren und testen können. Vielleicht ist das eine bessere Möglichkeit, meine Frage zu stellen. Welches Tool brauche ich, um unser Durcheinander zu lösen?
Unser Ziel ist es, in der Lage zu sein:
A. Verwenden Sie die von uns generierte Dokumentation oder die Tools, die wir unserer Umgebung hinzufügen, um zu verstehen, wie die Prozeduren funktionieren sollen, und erstellen Sie anschließend eine Unit-Test-Abdeckung für die gespeicherten Prozeduren.
B. Zeigen Sie den Client-App-Entwicklern, wie jede dieser komplexen gespeicherten Prozeduren ordnungsgemäß aufgerufen wird.
C. Testen Sie unsere gespeicherten Prozeduren.