Для того чтобы дефрагментировать табличное пространство, администратору базы данных приходилось сначала экспортировать набор объектов, затем удалить их и после этого импортировать. Администраторы базы данных тратили много времени на регулярное выполнение такой процедуры. Хотя на самом деле не требовалось делать это больше одного раза, а в большинстве случаев — вообще не нужно. Одноразового выполнения этой процедуры было достаточно, чтобы продумать более эффективную организацию хранения, позволяющую избежать фрагментации. В большинстве случаев, однако, никто ничего не менял, и история неизбежно повторялась. В некоторых случаях это делали, поскольку слышали, что "это необходимо", хотя в их случае этого можно было избежать. Более того, подобное использование утилит EXP/IMP было небезопасно. Вы берете все данные из базы данных, удаляете их, а затем снова вставляете. Определенный промежуток времени данные не защищаются СУБД. Есть опасность, что утилита IMP не сработает (это ведь просто программа). Есть также опасность изменения данных при экспортировании (эти изменения в файл экспорта не попадут) и потери этих изменений. Можно потерять права доступа к объектам и т.д. Все это требует серьезного планирования и приостановки работы на длительное время. В Oracle8i нет необходимости использовать утилиты ЕХР/IМР для реорганизации данных. Если вы действительно думаете, что это нужно (а я свято верю, что делать это надо не более одного раза для исправления неудачной реализации), то можно использовать оператор ALTER TABLE MOVE для переноса таблиц из одного табличного пространства в другое. В ходе такой реорганизации таблица будет доступна для запросов, но не для изменений. Сразу же после переноса индексы становятся недействительными и надо их пересоздать, так что на это время производительность запросов снизится. Но время простоя будет существенно меньше, чем при использовании утилит EXP/IMP, причем ни одной из перечисленных выше проблем не возникает; данные все время защищены СУБД, нет угрозы потери или изменения данных, процесс не затрагивает привилегии и т.д. В заключение еще раз подчеркну: дни EXP/IMP как средства реорганизации данных сочтены. Даже не пытайтесь использовать их для этой цели. |