powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Утилита дефрагментации
6 сообщений из 6, страница 1 из 1
Утилита дефрагментации
    #37036526
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сентабрьском обучении проскакивали разговоры про утилиту дефрагментации базы.
Кто-нибудь в курсе, на какой это стадии? Интересует именно дефрагментация, а не сжатие.
...
Рейтинг: 0 / 0
Утилита дефрагментации
    #37036610
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н., а это не оно ли (Cache for Windows (x86-64) 2010.2 (Build 454))?:
[Домашняя страница] > [Базы данных] > [Свободное место] : Освободить
Compact Database
You can compact data (that is, move freespace from within a file to the end of the file) on local databases. After compacting data, you can truncate the database to return this freespace to the underlying file systemПопробовал сжать 10Гб БД с освобождением 512Мб, и это случилось достаточно быстро, причем освободилось даже больше...
...
Рейтинг: 0 / 0
Утилита дефрагментации
    #37037306
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, хотелось именно дефрагментации. Я правда не уверен, что это имеет смысл, но все-же.
...
Рейтинг: 0 / 0
Утилита дефрагментации
    #37037592
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного потестил. Впечатление такое: это всё же дефрагментация, но лишь на уровне блоков. Т.е., если есть встретится свободный блок, он будет перемещён в конец БД, если же два идущие подряд "полупустые", то нет. Тестировал так:
Код: plaintext
1.
USER>k ^zzz,^yyy f i= 1 : 1 : 10000000  set ^yyy(i)=i,^zzz(i)=i
USER>f i= 1 : 1 : 10000000  kill:'(i\ 2000 # 2 ) ^yyy(i),^zzz(i)
БД удалось дефрагментировать, выполнив (в терминологии ^DATABASE) "13) Compact freespace in a database", после чего около 140Мб удалось освободить, выполнив "12) Return unused space for a database". Пересоздав глобалы и "проредив" их группами по 500 узлов:
Код: plaintext
USER>f i= 1 : 1 : 10000000  kill:'(i\ 500 # 2 ) ^yyy(i),^zzz(i)
, я не смог дефрагментировать почти ничего (хотя в результате Kill'ов освободилось около 80Мб разреженного пространства). Однако, повторив последний тест и выполнив перед п.13 п.7 ("Compact globals in a database" = ^GCOMPACT) по двум глобалам (^yyy и ^zzz) до 90% процентов заполнения блоков, я смог дефрагментировать/освободить около 120Мб.
...
Рейтинг: 0 / 0
Утилита дефрагментации
    #37037750
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что техническая возможность есть, это понятно.
Блоки то перемещать каше умеет, и даже информацию между блоками.
Но вот есть подозрение, что просто блоки из конца базы запихиваются в пустые места начала и середины, а самой дефрагментации блоков не происходит.
Правда еще спорный вопрос, насколько это поднимет быстродействие субд, и поднимет ли, с учетом многопоточного запроса данных, кэширования, запросов нескольких глобалов одновременно.
...
Рейтинг: 0 / 0
Утилита дефрагментации
    #37037830
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н....самой дефрагментации блоков не происходит.Дефрагментацию блоков делает ^GCOMPACT. Ее влияние на производительность, действительно, спорно. Можно ожидать, что после серьезной реорганизации глобала (когда удалено много узлов), от нее иногда может быть толк. Например, если глобал используется преимущественно для чтения (что-то типа справочника).
Интересно, что имели в виду ИнтерСистемцы, говоря о дефрагментации на сентябрьской школе?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Утилита дефрагментации
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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