![]() |
#1 |
Участник
|
Как эффективно удалить данные в АХ ?
AX 4.0, SQL 2005. Есть таблица - 220 млн. записей, занимает в базе 65 Гб (данные + индексы). Другие таблицы на записи этой таблицы не ссылаются.
Задача: полностью очистить содержимое таблицы. Вопрос: как это сделать наиболее эффективно? Под эффективностью я понимаю наилучшее сочетание таких параметров: время удаления, нагрузка на сервер с базой, нагрузка на сам SQL, нагрузка на АОС, необходимое для операции дополнительное дисковое пространство, рост лога транзакций. Будет ли наиболее эффективным удаление таблицы полностью через SQL, с последующим воссозданием её структуры путем синхронизации Data Dictionary в Аксапте? Сколько времени может занять удаление? |
|
![]() |
#2 |
Участник
|
truncate.
|
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
Ну да, но вроде из исходной постановки задачи это и следует:
Цитата:
|
|
![]() |
#5 |
Участник
|
truncate - выполняется в одной транзакции? что при этом происходит с логом транзакций SQL ?
|
|
![]() |
#6 |
Участник
|
лог растет, если установлен recovery model = full.
|
|
![]() |
#7 |
Боец
|
Table properties:
1. Set Temporary = Yes 2. Synchronize 3. Set Temporary = No 4. Synchronize |
|
![]() |
#8 |
Участник
|
По поводу лога и прочего лучше всего обратиться к документации. В частности, на счет лога пишут:
Цитата:
Compared to the DELETE statement, TRUNCATE TABLE has the following advantages:
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|