Donc, le titre le résume.
J'ai une base de données SQL Server avec 28 tables et 86 procédures stockées qui doivent être rétroconçues. Je suis presque sûr que certaines tables ne sont jamais utilisées et que tous les procs ne sont pas utilisés également.
Le plus gros problème est que tous les services Windows créés pour être utilisés avec cette base de données et toute la documentation du logiciel et de la base de données sont perdus, et la personne qui a conçu l'ensemble du système est introuvable.
J'ai déjà réussi à créer un diagramme ER pour m'aider à comprendre les relations, mais comme je n'ai pas d'expérience en administration de base de données, je ne sais pas par où commencer.
Je suis également désolé si ce type de question ne doit pas être posé ici.
la source
Réponses:
Trois étapes très rapides pour vous aider à démarrer:
1)
Vous indiquera la dernière fois que chaque index a été utilisé, y compris l'index clusterisé. Donc, donnez-vous au moins une idée des tables auxquelles vous accédez (et de celles qui ne le sont pas).
2) Activez une session d'événements étendus (ou une trace Profiler côté serveur si vous exécutez une version antérieure à SQL 2012) pendant environ une heure pendant que l'application est utilisée. Vous pouvez également demander à un utilisateur d'effectuer diverses actions dans l'application dans un ordre spécifique afin de pouvoir le corréler avec la trace / session.
Une suggestion utile: si vous pouvez modifier la chaîne de connexion que l'application utilise, ajoutez "; Nom de l'application = AppNameGoesHere" afin que vous puissiez exécuter un filtrage de trace sur ce nom d'application particulier. Bonne pratique quand même.
3) Obtenez une version de l'application fonctionnant sur un serveur hors production. Développer une liste de tests comportementaux pour l'application («Lorsque l'utilisateur clique sur le bouton Nouvel élément, il crée un nouvel élément pour cet utilisateur», etc.) (J'utilise un format comme objectName_DEPRECATED_YYYYMMDD - la date étant le jour où j'ai l'intention de le supprimer.) Revérifiez tous vos tests.
Grâce à une combinaison de la session Événements étendus, du DMV d'utilisation de l'index et de votre suppression logicielle, vous devriez être en mesure d'identifier les principaux objets utilisés par l'application et un bon consensus général sur quel objet fait quoi.
Bonne chance!
la source
Votre meilleur pari pour commencer est de documenter votre base de données à l'aide de SQL Power Doc
Remarque: je l'ai utilisé et il vous donnera un très bon départ pour documenter et comprendre votre instance de serveur de base de données.
la source
New-Item -type directory -path "$([Environment]::GetFolderPath([Environment+SpecialFolder]::MyDocuments))\WindowsPowerShell\Modules"
étape sur leSqlServerInventory ReadMe.txt
fichier. Je ne sais pas où dois-je insérer le chemin d'accès au dossier nouvellement créé et où dois-je insérer le nom du dossier nouvellement créé.Depuis que j'étais dans une situation similaire, je peux vous dire que ce sera un travail difficile à impossible. Je n'avais que le code source (> 100k lignes de code), le service en cours d'exécution, la base de données en cours d'exécution (~ 50 tables) et aucune documentation et personne à qui demander, sauf un utilisateur de cette application et une copie de la base de données et des services exécutés dans un environnement de test (qui était en avance de quelques numéros de version mais sans code source). Une autre exigence était que les services devaient fonctionner 24h / 24 et 7j / 7 car ils étaient externes aux clients. La situation est survenue parce que la plupart des employés sont partis à peu près au même moment, y compris les développeurs et la documentation a disparu dans le chaos. Il m'a fallu plus de 6 mois pour obtenir un aperçu / une documentation approximative. Il y avait de nombreuses tables et fonctions qui n'avaient aucun effet car elles étaient destinées à une utilisation future ou jamais entièrement implémentées, fonctionnalités défectueuses ou obsolètes ou non publiées. Après les 6 mois, j'ai dû réécrire la documentation parce que j'ai découvert de nouvelles choses ou des relations entre les choses et j'avais des hypothèses erronées auparavant.
Pourquoi je dis ça? Parce que parfois, dans une telle situation, il est plus facile et moins cher de recommencer à zéro et d'écrire une nouvelle application remplissant les exigences de l'ancienne (ou de nouvelles si elles ont changé au fil du temps ou si vous voulez une nouvelle version majeure). Ou pour vous dire à quoi vous devrez vous attendre.
Si vous voulez vraiment le désosser, je recommanderais les étapes suivantes:
Je vous souhaite bonne chance ;)
la source
Je n'ai pas assez de représentant pour poster un commentaire mais je voulais répondre à votre question sur
getting the SQL Power Doc to work
.Si vous suivez les étapes sur leur page de documentation, cela fonctionnera assez facilement. Commencez par le haut.
https://sqlpowerdoc.codeplex.com/wikipage?title=Guide%20For%20PowerShell%20Beginners
la source