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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.04.2010, 15:22   #61  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
зачем св-во SavePerCompany установлено в Yes сказать не могу (ставил не я, а спросить уже не у кого)
Это значение по умолчанию.
Как только измените значение этого свойства на No, из запроса сразу уйдут условия по DataAreaId.

Я ещё хотел сказать, что для тестирования временно стоит отказаться от удаления по частям. И добится сначала чтобы на пустой базе (без блокировки пользователей) delete_from из аксапты показывал бы тот-же самый результат, что и прямой delete from. Т.е. если и строить план запроса, то именно delete_from, а не вспомогательных select'ов, организующих цикл.
Старый 28.04.2010, 15:31   #62  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
Цитата:
Сообщение от mazzy Посмотреть сообщение
А что стало быстрее? Аксаптовский запрос или запрос из студии?
Быстрее стал Аксаптовский запрос. Без индекса по month полный цикл (удаление старых данных и заливка новых) занимал 4-5 часов. После добавления индекса - 1,5 - 2, из них примерно 1 час - удаление.

Запрос из студии на "ускорение" не проверял, запустил один раз (уже после добавления индекса) - 16 минут.
Старый 28.04.2010, 15:36   #63  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Это значение по умолчанию.
Так вот и не знаю, почему было оставлено это значение по умолчанию, не нужно оно там

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Я ещё хотел сказать, что для тестирования временно стоит отказаться от удаления по частям. И добится сначала чтобы на пустой базе (без блокировки пользователей) delete_from из аксапты показывал бы тот-же самый результат, что и прямой delete from. Т.е. если и строить план запроса, то именно delete_from, а не вспомогательных select'ов, организующих цикл.
Что Вы имеете в виду под "пустой базой без блокировки пользователей"?
Старый 28.04.2010, 15:36   #64  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
Если можно, объясните, пожалуйста
Мдя... *про себя* Назвался груздем - полезай в кузов

1. Заходите в Management Studio.
2. Коннектитесь и позиционируетесь на нужную базу данных
3. Создаете запрос
X++:
delete from SALESTABLE_TELECOMPHONTRA40478 where SALESTABLE_TELECOMPHONTRA40478.month = '2010-03-01'
4. включете опцию Include Actual Execution Plan
примерно так:
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 377
Размер:	47.2 Кб
ID:	5779

5. выполняете запрос
6. видите результаты и в закладке план исполнения
7. переключаетесь в закладку
8. скриншотите план исполнения так, чтобы он попал на скриншот полностью
9. повторяете действия для второго запроса

X++:
delete from SALESTABLE_TELECOMPHONTRA40478 where dataareaid = 'tz' AND month = '2010-03-01' AND RecID >= 5644252551  AND RecID <= 5644252561
Должно получится что-то вроде
Название: 2.PNG
Просмотров: 1157

Размер: 15.9 Кб

если ваш план запроса не помещается на экран, тогда сделайте следующий запросы:
X++:
set showplan_all on;
go
delete from SALESTABLE_TELECOMPHONTRA40478 where SALESTABLE_TELECOMPHONTRA40478.month = '2010-03-01'
X++:
set showplan_all on;
go
delete from SALESTABLE_TELECOMPHONTRA40478 where dataareaid = 'tz' AND month = '2010-03-01' AND RecID >= 5644252551  AND RecID <= 5644252561
в этом случае вместо результатов вы получите текстовый вариант плана запроса.
Нажмите на изображение для увеличения
Название: 3.PNG
Просмотров: 404
Размер:	15.7 Кб
ID:	5781

либо скриншоты, либо текст выкладывайте сюда.
__________________
полезное на axForum, github, vk, coub.
Старый 28.04.2010, 16:17   #65  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
Что Вы имеете в виду под "пустой базой без блокировки пользователи"?
Коряво выразился. Я имел в виду тестовую базу с которой можете работать только вы но, не другие пользователей. Что бы не они вам не вы им не создавали блокировок. Дабы не загрязнять результаты эксперимента
Старый 28.04.2010, 16:35   #66  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Я имел в виду тестовую базу с которой можете работать только вы но, не другие пользователей.
Да, все эксперименты в такой базе и делаю.
Старый 29.04.2010, 17:37   #67  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
Убрал мультикомпанию, добавил Recid в индекс Month (индекс делать уникалным не стал), убрал кэширование.

Удаление 100000 записей из Аксапты через delete_from без ограничения по RecId - 12 мин.

Сделал индекс Month уникальным, выбрал его в PrimaryIndex на самой таблице.


Удаление 100000 записей из Аксапты без огр. по RecId - 7мин. 49с.
Удаление 100000 записей из Студии без огр. по Recid - 6мин. 47с.

Удаление 450000 записей из Аксапты без огр. по RecId - 9мин. 39 с.
Удаление 450000 записей из Студии без огр. по Recid - 9 мин. 36 с.

Удаление 600000 записей из Аксапты без огр. по RecId - 9мин. 45 с.
Удаление 600000 записей из Студии без огр. по Recid - 9 мин. 40 с.

Удаление 450000 записей из Аксапты с разделением по RecId на блоки (1000 записей в блоке) - 11 мин. 55 с.
Удаление 450000 записей из Студии Аксапты с разделением по RecId на блоки (10000 записей в блоке) - 10 мин. 24 с.



Планы запросов:
Миниатюры
Нажмите на изображение для увеличения
Название: Без_огр_по_recid.JPG
Просмотров: 382
Размер:	199.3 Кб
ID:	5792   Нажмите на изображение для увеличения
Название: С_огр_по_recid.JPG
Просмотров: 460
Размер:	151.4 Кб
ID:	5794  

Вложения
Тип файла: xlsx Без_огр_по recid.xlsx (10.3 Кб, 120 просмотров)
Тип файла: xlsx С_огр_по recid.xlsx (9.8 Кб, 158 просмотров)
Старый 30.04.2010, 21:22   #68  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
ну, вот! я же говорил, что планы разные.
и оба неоптимальны.

Цитата:
Сообщение от Shirmin Oleg Посмотреть сообщение
Убрал мультикомпанию, добавил Recid в индекс Month (индекс делать уникалным не стал), убрал кэширование.

Удаление 100000 записей из Аксапты через delete_from без ограничения по RecId - 12 мин.
а с ограничением по RecID?
__________________
полезное на axForum, github, vk, coub.
Старый 04.05.2010, 15:49   #69  
Shirmin Oleg is offline
Shirmin Oleg
Участник
 
89 / 35 (2) +++
Регистрация: 26.03.2004
Цитата:
Сообщение от mazzy Посмотреть сообщение
а с ограничением по RecID?
50 минут
Теги
ax2009, ccadoconnection, delete_from, оптимизация, удаление

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Задвоение RecId при вставке записей через COM коннектор db DAX: Программирование 1 23.04.2009 15:12
Класс OfficialsServ_RU - удаление записей из OfficialsTrans_RU Logger DAX: Программирование 3 14.09.2006 15:58
Запуск программы из Аксапты через 2-хзвенку Migel_84 DAX: Программирование 25 27.04.2006 09:41
Проблема с запуском business connector'a через удал доступ yooshi DAX: Программирование 1 07.11.2005 08:56
Удаление записей из InventDim и SalesTable DreamCreator DAX: Программирование 4 08.12.2004 17:23

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:15.