2009-10-29 4 views
2

Сайт, над которым я работаю как студент, будет изменен и выпущен в ближайшем будущем, и мне была поручена задача ручного поиска по каждой таблице в БД, которую использует сайт, чтобы найти таблицы, которые мы можем рассмотреть для удаления. Я делаю поиск через каждый исходный код HTML-файлов в Dreamweaver, но я надеялся, что есть автоматический способ проверить мою работу. Есть ли у кого-нибудь какие-либо предложения относительно того, как это делается в деловом мире?Очистка таблиц SQL от большой БД?

ответ

2

Если вы просматриваете код, вы можете найти SQL, который никогда не используется, потому что пользователи никогда не выбирают эти параметры в приложении.

Вместо этого я предлагаю вам включить аудит в базе данных и зарегистрировать, какой SQL фактически используется. Например, in Oracle you would do it like this. Другие основные серверы баз данных имеют схожие возможности.

Из данных журнала вы можете идентифицировать не только таблицы, которые используются, но и их частоту использования. Если в схеме есть какие-либо таблицы, которые не отображаются в течение недели аудита, или отображаются редко, то вы можете исследовать это в коде с помощью инструментов текстового поиска.

После того, как у вас есть таблицы-кандидаты для удаления из базы данных и утверждения от вашего менеджера, то не просто отбрасывайте таблицы, создавайте их снова как пустую таблицу или помещайте одну фиктивную запись в таблицу, в основном с нулевыми значениями (или нулевой или пустой) в полях, за исключением полей имени и описания, где вы можете поместить что-то вроде «DELETED» «Сообщить об ошибке DELE для поддержки центра» и т. д. Таким образом, приложение не сбой с жесткой ошибкой, и у вас есть шанс узнать, что делают пользователи, когда заканчиваются этими неиспользуемыми таблицами.

+0

Аналогично, это даст вам только то, что использовалось с тех пор, как вы начали смотреть. Лучше оценить всю заявку и определить, что будет сделано при обновлении. –

1

Обратный инженер DB (Visio, Toad и т. Д.), Документируйте структуру и спросите дизайнеров нового сайта, что им нужно, а затем рефакторинг.

+1

спасибо. Я не могу проголосовать за тебя, потому что у меня «недостаточно репутации», но это тот подход, который я искал. Я начинающий программист, и я все еще знаком с процессом вещей. – nlast

0

Если имена таблиц указаны в источнике HTML (и если это единственное место, которое они когда-либо указывали!), Вы можете выполнить поиск в файлах для имени каждой таблицы в БД. Если есть много таблиц, подумайте об использовании такого инструмента, как grep, и создайте скрипт, который запускает grep для базы исходного кода (файлы HTML и любые другие, которые могут ссылаться на таблицу по имени) для каждого имени таблицы.

Сказав это, я все равно буду следовать совету Дамира и принять список кандидатов на удаление для разработчиков данных для проверки.

0

Я предполагаю, что у вас нет никаких тестов на месте доступа к данным или пользовательского интерфейса, поэтому нет возможности проверить, что такое и не используется. Если доступ к данным согласован, сценарий будет вашим лучшим выбором. Попросите его выполнить поиск таблиц/представлений/хранимых процедур, которые вызывают, и выгрузить их в файл для дальнейшего анализа. Это, по крайней мере, даст вам список всего, что на самом деле называется из какого-то места. Что касается, если эти страницы фактически используются где угодно, это еще одна история.

Как только у вас есть список вызываемых элементов базы данных, сравните их со списком определяемых пользователем элементов, которые находятся в базе данных. Это даст вам те, которые потенциально могут быть удалены.

Все, что сказано, если сайт обновляется, то новая схема базы данных может фактически быть лучшим подходом. Обычно менее интенсивно запускать свежие и импортировать старые данные, чем искать мертвые таблицы и поля.

1

Я хотел бы начать с расчесывания через источник HTML для ключевых слов:

  • ВЫБРАТЬ
  • ВСТАВИТЬ
  • UPDATE
  • УДАЛИТЬ

... используя Grep/и т.д.. Ни один из них не является объектами HTML, и вы не можете надежно использовать имена таблиц, потому что вы можете иметь дело с представлениями (если они существуют в системе). Затем вам нужно налить сами заявления, чтобы определить, что используется.

Если в системе были использованы функции и/или хранимые процедуры, большинство БД имеют ссылочную функцию для проверки зависимостей.

Это было бы подходящее время для создания проектного документа на экранной основе, перечисляя атрибуты на экране &, где значения (-ы) поступают из базы данных на уровне table.column.

Составьте список используемых таблиц и сравните с тем, что действительно находится в базе данных.

Смежные вопросы