Насколько я понимаю, на основании некоторых исследований, но нулевого реального опыта работы с Sybase ASE, единственный способ освободить дисковое пространство после того, как оно было выделено базе данных, - это экспортировать эту базу данных, создать новую БД с той же схемой и перезагрузить все экспортированные данные в новую базу данных. Это правильно или есть другой метод?
Затем: если все вышеперечисленное верно и требуется полная загрузка-экспорт-воссоздание-перезагрузка, каков наиболее эффективный способ сделать это? Существуют ли инструменты, которые полностью или частично автоматизируют этот процесс? Мне сказали, что нам придется написать отдельный bcp
команды экспорта и импорта для каждого объекта в базе данных, что, если правда, звучит легко скриптовым человеком, который достаточно хорошо знает Sybase ASE. (Я не.)
Мне кажется, что это действительно простая домашняя задача, и мне кажется, что я упускаю что-то очевидное.
Ваше исследование абсолютно верно. После того, как вы выделите место на устройстве для базы данных, вы не сможете вернуть это пространство. Единственный способ вернуть дисковое пространство - отбросить базу данных и связанные с ней устройства данных.
Чтобы получить необходимые объекты базы данных из базы данных, если у вас их еще нет, нужно использовать ddlgen утилита. Это будет реконструировать объекты базы данных (таблицы, столбцы, триггеры, процедуры и т. Д.) И поместить их в файл сценария, который может быть выполнен для воссоздания объектов в пустой базе данных.
Для экспорта данных вы можете получить список пользовательских таблиц с помощью следующего запроса:
select name from [YOUR_DATABASE_NAME]..sysobjects where type = "U"
go
Сохраните вывод в отдельный файл, и его легко перебрать в bcp из всех данных.
При необходимости настройте параметры управления пространством перед перестройкой. Когда reorg rebuild перестраивает таблицу, он перезаписывает все строки таблицы и индекса в соответствии с текущими настройками таблицы для reservepagegap
, fillfactor
, и exp_row_size
. Все эти свойства влияют на то, как быстро вставки вызывают фрагментацию таблицы, что измеряется низким коэффициентом кластеризации.
Ознакомьтесь с новыми функциями sp100, включая сжатие базы данных. http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc01165.1600/doc/html/car1351120097458.html