AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.06.2012, 10:20   #1  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,200 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Как эффективно удалить данные в АХ ?
AX 4.0, SQL 2005. Есть таблица - 220 млн. записей, занимает в базе 65 Гб (данные + индексы). Другие таблицы на записи этой таблицы не ссылаются.
Задача: полностью очистить содержимое таблицы.
Вопрос: как это сделать наиболее эффективно? Под эффективностью я понимаю наилучшее сочетание таких параметров: время удаления, нагрузка на сервер с базой, нагрузка на сам SQL, нагрузка на АОС, необходимое для операции дополнительное дисковое пространство, рост лога транзакций.
Будет ли наиболее эффективным удаление таблицы полностью через SQL, с последующим воссозданием её структуры путем синхронизации Data Dictionary в Аксапте? Сколько времени может занять удаление?
Старый 12.06.2012, 10:41   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
truncate.
Старый 12.06.2012, 11:29   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от gl00mie Посмотреть сообщение
truncate.
внимание: удаляет данные изо всех компаний.
__________________
полезное на axForum, github, vk, coub.
Старый 12.06.2012, 13:34   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от mazzy Посмотреть сообщение
внимание: удаляет данные изо всех компаний.
Ну да, но вроде из исходной постановки задачи это и следует:
Цитата:
Сообщение от Zabr Посмотреть сообщение
Есть таблица - 220 млн. записей, занимает в базе 65 Гб (данные + индексы). Задача: полностью очистить содержимое таблицы.
Думаю, автор исходного сообщения по роду деятельности должен отличать формулировки "удалить все записи в таблице для заданной компании" и "полностью очистить содержимое таблицы".
Цитата:
Сообщение от Zabr Посмотреть сообщение
Другие таблицы на записи этой таблицы не ссылаются.
Похоже на чистку журнала БД (SysDatabaseLog); если так, то полная очистка данных в таблице - не лучший способ сопровождения (maintenance) этого механизма журнализации.
Старый 12.06.2012, 15:16   #5  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,200 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
truncate - выполняется в одной транзакции? что при этом происходит с логом транзакций SQL ?
Старый 12.06.2012, 16:18   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Zabr Посмотреть сообщение
truncate - выполняется в одной транзакции? что при этом происходит с логом транзакций SQL ?
лог растет, если установлен recovery model = full.
__________________
полезное на axForum, github, vk, coub.
Старый 12.06.2012, 16:45   #7  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
Table properties:
1. Set Temporary = Yes
2. Synchronize
3. Set Temporary = No
4. Synchronize
Старый 12.06.2012, 16:45   #8  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
По поводу лога и прочего лучше всего обратиться к документации. В частности, на счет лога пишут:
Цитата:
Compared to the DELETE statement, TRUNCATE TABLE has the following advantages:
  • Less transaction log space is used. The DELETE statement removes rows one at a time and records an entry in the transaction log for each deleted row. TRUNCATE TABLE removes the data by deallocating the data pages used to store the table data and records only the page deallocations in the transaction log.
  • ...
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Table properties:
1. Set Temporary = Yes
2. Synchronize
3. Set Temporary = No
4. Synchronize
Это то же, что drop table/sync Data Dictionary
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Приглашаем сертифицированных специалистов Ах для работы на проекте в г. Анадырь. Наполеон Курилка 0 20.02.2010 17:08
Вылетаю с форума очень быстро - постоянно вводить свои данные - это очень неудобно jeky Обсуждение форума 8 29.05.2008 15:29
Невозможно удалить тему. Maximin Обсуждение форума 1 02.12.2005 18:18
Как удалить свою тему? treeny Обсуждение форума 8 25.03.2005 18:03

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:07.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.