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