Итак, название подводит итог.
У меня есть база данных SQL Server с 28 таблицами и 86 хранимыми процедурами, которые необходимо пересмотреть. Я почти уверен, что некоторые таблицы никогда не используются и что не все процессы также используются.
Самая большая проблема заключается в том, что все службы Windows, которые были созданы для использования с этой БД, и все программное обеспечение и документация к базе данных потеряны, а человека, создавшего всю систему, нигде не найти.
Мне уже удалось создать диаграмму ER, чтобы помочь мне понять отношения, но, поскольку у меня нет опыта администрирования базы данных, я понятия не имею, с чего мне начать.
Также я извиняюсь, если этот вопрос не предназначен, чтобы быть заданным здесь.
sql-server
documentation
Человек, в конце концов
источник
источник
Ответы:
Три очень быстрых шага, чтобы начать работу:
1)
Расскажет вам, когда в последний раз использовался каждый индекс, включая кластерный индекс. Так что, по крайней мере, вы сможете понять, к каким таблицам обращаются (а какие нет).
2) Включите сеанс расширенных событий (или трассировку профилировщика на стороне сервера, если вы используете pre-SQL 2012) примерно на час во время использования приложения. Вы также можете попросить пользователя выполнить различные действия в приложении в определенном порядке, чтобы вы могли соотнести его с трассировкой / сеансом.
Полезное предложение: если вы можете вообще изменить строку подключения, используемую приложением, добавьте «; Application Name = AppNameGoesHere», чтобы вы могли запустить фильтрацию трассировки для этого конкретного имени приложения. Хорошая практика в любом случае.
3) Получить версию приложения, работающую на непроизводственном сервере. Разработайте список поведенческих тестов для приложения («Когда пользователь нажимает кнопку« Создать элемент », он создает новый элемент для этого пользователя» и т. Д.). Начните мягкое удаление объектов, которые, по вашему мнению, не имеют никакого отношения к тестам, переименовав их. (Я использую формат наподобие objectName_DEPRECATED_YYYYMMDD - с датой, являющейся днем, когда я планирую фактически удалить его.) Перепроверьте все ваши тесты.
Благодаря комбинации сеанса расширенных событий, DMV использования индекса и мягкого удаления вы сможете определить основные объекты, используемые приложением, и хорошее общее согласие относительно того, какой объект делает что.
Удачи!
источник
Лучше всего начать с документирования базы данных с помощью SQL Power Doc.
Примечание: я использовал его, и он даст вам хорошее начало для документирования и понимания вашего экземпляра сервера базы данных.
источник
New-Item -type directory -path "$([Environment]::GetFolderPath([Environment+SpecialFolder]::MyDocuments))\WindowsPowerShell\Modules"
этап вSqlServerInventory ReadMe.txt
файле. Я не понимаю, куда мне вставить путь к вновь созданной папке и куда я должен вставить имя только что созданной папки.Поскольку я когда-то был в подобной ситуации, я могу сказать вам, что это будет трудная или невозможная работа. У меня был только исходный код (> 100 тыс. Строк кода), работающий сервис, работающая база данных (~ 50 таблиц) и никакой документации, и никто не спросил об этом, кроме пользователя этого приложения и копии базы данных и сервисов, работающих в тестовая среда (которая была на несколько номеров впереди, но без исходного кода). Еще одним требованием было то, что сервисы должны были работать круглосуточно, потому что они были внешними по отношению к клиентам. Ситуация возникла потому, что большинство сотрудников ушли примерно в одно и то же время, в том числе разработчики и документация исчезли в хаосе. Мне потребовалось более 6 месяцев, чтобы получить приблизительный обзор / документацию. Было много таблиц и функций, которые не имели никакого эффекта, потому что они предназначались для будущего использования или не были полностью реализованы, неисправные или устаревшие или неизданные функции. После 6 месяцев мне пришлось переписать документацию, потому что я обнаружил новые вещи или отношения между вещами, и у меня были неправильные предположения раньше.
Почему я говорю это? Потому что иногда в такой ситуации проще и дешевле начать с нуля и написать новое приложение, полностью отвечающее требованиям старого (или нового, если они изменились со временем или вы хотите новый основной выпуск). Или сказать вам, что вы должны ожидать.
Если вы действительно хотите перепроектировать его, я бы порекомендовал следующие шаги:
Желаем вам удачи ;)
источник
У меня недостаточно представителей, чтобы оставить комментарий, но я хотел помочь с вашим вопросом о
getting the SQL Power Doc to work
,Если вы выполните действия, описанные на странице документации, это будет довольно легко работать. Просто начните сверху.
https://sqlpowerdoc.codeplex.com/wikipage?title=Guide%20For%20PowerShell%20Beginners
источник