Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Load Table и Checkpoint / 2 сообщений из 2, страница 1 из 1
15.07.2008, 18:53
    #35432058
Ggg_old
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Table и Checkpoint
День добрый!
СУБД: ASA10 Developer, Windows XP.
После заливки большой таблицы (около 5млн записей) через LOAD TABLE
сервер стартует checkpoint, который по времени длится почти столько-же сколько и сама заливка данных. В моем случае это около 17мин на LOAD TABLE и около 18мин на checkpoint. Серверок - обычная персоналка с двума SATA винтами в зеркале (внешний sata-raid контроллер), под кэш отведено 512М. Размер заливаемых данных превышает кэш.
Во время самой заливки сервер делает чекпоинты, которые отрабатывают мгновено, т.к. других операций на базе нет.
Во время "большого" чекпоинта сервер становится крайне неотзывчив, сильно тормозит.
В документации описывается алгоритм работы чекпоинта на примере обычных транзакций, но LOAD TABLE не использует лог. Пока выходит, что вначале load грузит данные куда-то в бд, а потом окончательно записывает их в БД, т.е. делает двойню работу.
Вопрос, типично ли такое поведение, как можно избежать длительного чекпоинта. Можно ли длительный чекпоинт разбить на несколько коротких, которые выполняется непосредственно в процессе самой заливки. И вообще каков алгоритм работы чекпоинта после LOAD.
Спасибо.
все наши на www.corba.kubsu.ru
...
Рейтинг: 0 / 0
16.07.2008, 00:58
    #35432445
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Table и Checkpoint
Тот же самый что и при любой транзакции.
Данные сначала идут в грязные страницы, потом при чекпоинте они переписываются в белые.
Это и для обычных insert и для load работает одинаково. Единственная разница между несколькими insert и load это то, что при load данные проходят мимо транзакционного лога. Но грязных страниц они все равно не избегут иначе будет опасность порушить данные если база упадет во время заливки.
Самый простой способ борьбы с длительным чекпоинтом это разрезать загружаемый массив данных на несколько частей. А в промежутке между ними принудительно звать CHECKPOINT.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Load Table и Checkpoint / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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