powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как уменьшить размер ASA 10.0 standalone database
7 сообщений из 7, страница 1 из 1
Как уменьшить размер ASA 10.0 standalone database
    #35011865
Бока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые коллеги,

Мне пришлось upgrade-ировать ASA 7.0 standalone database to ASA 10.0 standalone database:
- upgrade-ировать пришлось сначала с ASA 7.0 на ASA 9.0 а затем ASA 9.0 на ASA 10.0;
- поскольку мне нужно было в upgrade-ированной БД иметь character set UTF8BIN вместо Western European 1252, то я в ASA 9.0 создавал новую БД с UTF8 character set и pfntv делал upgrade с помощью unload из исходной ASA 7.0 в новую ASA 9.0. Затем я создавал новую ASA 10.0 БД с UTF8BIN character set и pfntv делал upgrade с помощью unload из исходной ASA 9.0 в новую ASA 10.0;
- поскольку мне в конечной ASA 10.0 БД нужно было alter-ивать все columns типа CHAR, VARCHAR и LONG VARCHAR на columns типа NCHAR, NVARCHAR и LONG NVARCHAR соответственно, то мне пришлось drop-нуть все primary and foreign keys, поскольку иначе невозможно было произвести alter-ование тех колонок, которые входили в состав primary and foreign keys. Затем после alter-ования типов мне пришлось создать все primary and foreign keys заново.

В результате всех этих манипуляций конечная ASA 10.0 БД получилась размером в 6-ть раз большим, чем исходная ASA 7.0 БД пр том же количестве таблиц и данных в них и том же количестве других объектов (stored procedures, triggers, views).

Каким образом можно шринковать конечную ASA 10.0 БД до минимально возможного размера ?
...
Рейтинг: 0 / 0
Как уменьшить размер ASA 10.0 standalone database
    #35012191
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотья я никогда таким не занимался, но предполагаю, что получившуюся базу на десятке надо :выгрузить, пересоздать файл БД и загрузить все данные снова. Т.е есть вероятность, что в вашей БД много свободного места, которое появилось в процессе переальтеривания таблиц. Это можно проверить с помощью консольной утилитки и посмотреть сколько в БД свободных страниц.
...
Рейтинг: 0 / 0
Как уменьшить размер ASA 10.0 standalone database
    #35012880
Бока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_oldЭто можно проверить с помощью консольной утилитки и посмотреть сколько в БД свободных страниц.А что это за утилитка ?
...
Рейтинг: 0 / 0
Как уменьшить размер ASA 10.0 standalone database
    #35015582
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бока Ggg_oldЭто можно проверить с помощью консольной утилитки и посмотреть сколько в БД свободных страниц.А что это за утилитка ?Sybase Central, что же еще? Правый клик по имени базы и смотреть проперти базы. Либо в dbisql: call sa_db_properties()
Смотреть параметры PageSize, FileSize и FreePages.
PageSize * FileSize = общий размер файла базы данных в байтах
PageSize * FreePages = суммарный объем пустого пространства в базе, без учета хвостов.
Хвосты отдельно посчитать можно, но сложнее. Их надо будет считать для каждой таблицы по отдельности при помощи функции sa_table_page_usage( )

А впрочем, кажется Foxhound может что-то суммарное рассказать, но я с ним не работал.

А вообще-то, при конвертации CP на UTF размер базы должен увеличиться по определению - все же в CP один символ - один байт, а в UTF каждый символ от одного до четырех байт может быть...

Но если хочешь ужать базу, то сделай reload прямо сейчас и все. Получишь реально минимальный объем файла БД для имеющихся в базе данных.
...
Рейтинг: 0 / 0
Как уменьшить размер ASA 10.0 standalone database
    #35015682
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я имел ввиду dbinfo.exe
...
Рейтинг: 0 / 0
Как уменьшить размер ASA 10.0 standalone database
    #35016062
Бока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем,
удалось уменьшить размер БД примерно в 4-раза. Наибольшее место занимали именно хвосты.

Увеличение окончательного размера БД примерно в 1,5 раз отношу к использованию UTF8 вместо Western European 1252.
А может быть и увеличение размера page от 1024 до 8192 тоже сыграло роль ?
...
Рейтинг: 0 / 0
Как уменьшить размер ASA 10.0 standalone database
    #35016128
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БокаА может быть и увеличение размера page от 1024 до 8192 тоже сыграло роль ?Нет, это на размер базы не влияет. Вернее влияет, но в обратном направлении. Сам представь: запишешь ты восемьдесять записей в восемь килобайтных страниц или те же восемьдесят в одну восьми-килобайтную? В первом случае у тебя будет восемь хвостиков размером меньше одной записи, а во втором только один хвостик размером меньше_одной_записи умножить на восемь :) Хотя на самом деле там намного более сложная зависимость. В разных таблицах записи разных размеров, плюс индексы, плюс системные таблицы.... В общем, предсказать размер базы на основе размера страниц нереально.

Размер страницы гораздо больше влияет на скорость работы. Почитай главу в BOL:
SQL Anywhere® Server - SQL Usage > Monitoring and Improving Performance > Performance improvement tips -> Use an appropriate page size
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как уменьшить размер ASA 10.0 standalone database
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]