2009-09-02 9 views

Antwort

1

Wenn der gespeicherte Proc nicht ausgeführt wird, besteht die Möglichkeit, dass er nicht verwendet wird, da sich niemand darum gekümmert hat, ihn zu aktualisieren, wenn sich etwas anderes geändert hat. Tabellen-Colunms, die für jeden einzelnen Datensatz null sind, werden wahrscheinlich nicht verwendet.

Wenn Sie Ihre sp-und Datenbank-Objekte in der Quellcodeverwaltung (und wenn Sie nicht warum nicht?), Können Sie möglicherweise durch und finden, welcher andere Code es in die Produktion mit dem was verschoben werden sollte geben Sie einen Hinweis darauf, wie es heißen könnte. Sie werden auch sehen können, wer sie zuletzt berührt hat und diese Person könnte wissen, ob sie noch benötigt wird.

Ich gehe das im Allgemeinen an, indem ich zuerst alle Procs auflistet (Sie können dies aus den Systemtabellen bekommen) und dann diejenigen, von denen ich weiß, dass sie benutzt werden, von der Liste entfernen. Profiler kann Ihnen hier helfen, wie Sie sehen können, die üblicherweise aufgerufen werden. (Aber gehen Sie nicht davon aus, dass der Profiler den Proc nicht anzeigt, dass er nicht verwendet wird, sondern dass er nur eine Liste der zu recherchierenden Punkte enthält.) Dies macht diejenigen, die neu rekrutiert werden müssen, zu einer viel kleineren Liste. Abhängig von Ihrer Namenskonvention ist es möglicherweise relativ einfach zu sehen, welcher Teil des Codes sie verwenden sollte. Vergessen Sie beim Recherchieren nicht, dass Processe an anderen Stellen als der Anwendung aufgerufen werden. Sie müssen also Jobs, DTS- oder SSIS-Pakete, SSRS-Berichte, andere Anwendungen, Trigger usw. überprüfen, um sicherzustellen, dass etwas nicht verwendet wird.

Sobald Sie eine Liste von Einsen identifiziert haben, die Sie nicht brauchen, teilen Sie sie mit dem Rest des Entwicklungspersonals und fragen Sie, ob jemand weiß, ob der Proc benötigt wird. Sie werden wahrscheinlich ein paar mehr auf diese Weise von der Liste genommen, die für etwas Spezialisiertes verwendet werden. Wenn Sie die Liste haben, ändern Sie die Namen in eine Konvention, mit der Sie sie als Löschkandidat identifizieren können. Stellen Sie gleichzeitig ein Löschdatum ein (wie weit dieses Datum entfernt ist, hängt davon ab, wie oft etwas aufgerufen werden könnte, wenn es etwa AnnualXYZReport genannt wird, dann machen Sie dieses Datum zu einem Jahr). Wenn sich niemand vor dem Löschdatum beklagt, lösche den Proc (natürlich, wenn er in der Quellcodeverwaltung ist, kannst du ihn auch dann zurückbekommen).

Nachdem Sie durch die Hölle gegangen sind, die schlechten zu identifizieren, dann ist es Zeit zu erkennen, dass Sie Leute trainieren müssen, die Teil des Entwicklungsprozesses sind, um nicht mehr verwendete Procs zu identifizieren und sie als zu beseitigen Teil einer Änderung an einem Codeabschnitt. Abhängig von der Codewiederverwendung kann dies bedeuten, dass die Codebasis durchsucht wird, um zu sehen, ob ein anderer Teil der Codebasis sie verwendet und dann dasselbe wie oben besprochen tut, jeder weiß, dass es an diesem Datum gelöscht wird, ändere den Namen so, dass irgend etwas Code-Verweisung wird es brechen und dann auf das Datum zu löschen, um es loszuwerden. Oder vielleicht können Sie eine Metadatentabelle erstellen, in der Sie Kandidaten zum Löschen hinzufügen können, sobald Sie wissen, dass Sie etwas nicht mehr verwenden, und einen Bericht an alle senden, um festzustellen, ob jemand anderer sie benötigt.

Ich kann mir keinen einfachen Weg vorstellen, es zu tun, es ist nur eine Frage der Identifizierung, was nicht verwendet werden könnte und durchschlängeln.

+0

Danke, HLGEM. Die meisten * Anwendungen * sind (noch) nicht in der Quellcodeverwaltung. Zum Glück sind die Anwendungen ziemlich einfach Asp Scripting, keine zusätzlichen Komponenten, obwohl viele hundert Seiten. Ich hatte auf etwas gehofft, das meine App durchsuchen könnte (vielleicht ein Doc-Generator?), Aber ich merke, dass es sich um Strohhalme klammert. –

0

Für SQL Server, nur drei Optionen, die ich mir vorstellen kann:

  • die gespeicherten Procs ändern Verwendung anmelden
  • überprüfen, ob Code hat keine Berechtigungen
  • laufen Profiler

und natürlich gesetzt, den Zugang zu entfernen oder löschen sie es und sehen, wer ruft ...

+0

Natürlich vorsichtig sein Profiler als es wird nicht fangen Dinge, die verwendet werden, aber nicht jeden Tag (Quartalsberichte und dergleichen) – HLGEM