Ich habe mehrere Horrors von alten ASP-Webanwendungen. Hat jemand eine einfache Möglichkeit zu finden, welche Skripte, Seiten und gespeicherten Prozeduren nicht mehr benötigt werden? (Neben dem Zeug in "old___code", "delete_this", etc ;-)Suchen redundante Seiten, Dateien, gespeicherte Prozeduren in älteren Anwendungen
Antwort
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.
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 ...
Natürlich vorsichtig sein Profiler als es wird nicht fangen Dinge, die verwendet werden, aber nicht jeden Tag (Quartalsberichte und dergleichen) – HLGEM
- 1. Gespeicherte Prozeduren in .SQL-Dateien
- 2. Gespeicherte Prozeduren in Hive
- 3. Gespeicherte Prozeduren in Rails verwenden
- 4. Gespeicherte Prozeduren und Funktionen
- 5. gespeicherte SQL-Prozeduren
- 6. Muster für gespeicherte Prozeduren?
- 7. Gespeicherte Prozeduren PHP
- 8. Gespeicherte Prozeduren im Entitätsframework
- 9. gespeicherte Prozeduren mit sqlAlchemy
- 10. Gespeicherte Prozeduren für komplexe Abfragen
- 11. Gespeicherte Prozeduren/Funktionen in allen Datenbanken durchsuchen
- 12. EF4-Vererbung und gespeicherte Prozeduren
- 13. MySQL: Ansichten vs gespeicherte Prozeduren
- 14. Spring Data und gespeicherte Prozeduren
- 15. SubSonic - Nicht-Crud Gespeicherte Prozeduren
- 16. SQL Server - Suche durch gespeicherte Prozeduren?
- 17. Hilfe, gespeicherte Prozeduren und Cursor
- 18. Gespeicherte Prozeduren oder OR-Mapper?
- 19. Gute Ressource für gespeicherte Prozeduren
- 20. Gespeicherte Prozeduren mit SQLAlchemy erstellen
- 21. ASP.NET MVC Aufruf gespeicherte Prozeduren
- 22. So sichern Sie gespeicherte Prozeduren in MySQL
- 23. Gespeicherte Prozeduren und Trigger in der Datenbank
- 24. Verschiedene gespeicherte Prozeduren parallel in EF6 ausführen
- 25. clr gespeicherte Prozeduren mit zwei in Parametern
- 26. Neo4j 3.0.3 Gespeicherte Prozeduren in Scala
- 27. Spionage- und Komponententest Gespeicherte Prozeduren in EF
- 28. In MySQL sind gespeicherte Prozeduren effizienter?
- 29. Benannte Parameter für gespeicherte Prozeduren in MySQL
- 30. Optionale Parameter in Mysql gespeicherte Prozeduren
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. –