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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.03.2016, 15:16   #1  
Emka is offline
Emka
Участник
 
40 / 12 (1) ++
Регистрация: 06.05.2015
? insert
Добрый день.
Возникла проблема
При запуске формы запускается insert на 25к строк во временную таблицу. Занимает это примерно 6 минут, что не очень радует.
Данные берутся через SQL Server и при insert-е считываются построчно.
Данные в постоянную таблицу заносить нет смысла так как они постоянно добавляются, меняются и удаляются.

Есть ли какой то вариант оптимизации?
Старый 24.03.2016, 15:26   #2  
Silence is offline
Silence
Участник
Аватар для Silence
 
287 / 27 (1) +++
Регистрация: 29.09.2004
Адрес: г. Москва, Зеленоград
pack() на сервере, unpack() на клиенте и doInsert() по временную.
Правда 25к записей многовато. Но должно побыстрее стать.

А зачем вообще такое кол-во записей в форме?

Может стоит сделать 2 формы, что бы сократить кол-во записей на пару порядков?
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу)

Последний раз редактировалось Silence; 24.03.2016 в 15:29.
Старый 24.03.2016, 15:38   #3  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Альтернативный вариант 1 (хороший):
1) Можно сделать view внутри Аксапты, например, по Query. Тут обсуждалось.

Альтернативный вариант 2 (не очень хороший) :
1) Создать View в AX, создать таблицу-каркас для view в AX
2) Подменить SQL-запрос для данной View. Тут обсуждалось.
__________________
С уважением, Александр.

Последний раз редактировалось samolalex; 24.03.2016 в 15:42.
Старый 24.03.2016, 16:21   #4  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Цитата:
Сообщение от Emka Посмотреть сообщение
Данные в постоянную таблицу заносить нет смысла так как они постоянно добавляются, меняются и удаляются.
Я делал подобное через постоянные таблицы АХ и заполнял/очищал их через скулевый запрос. Все работает.
Старый 24.03.2016, 19:18   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Для Ax2012 можно писать напрямую во временную таблицу на стороне SQL-сервера

Получить SQL-имя таблицы типа TempDB

Для младших версий, придется создать постоянную таблицу и озаботится ее сопровождением (корректной очисткой).

Но общую идею высказал Alexius. Не надо гонять 25К данных на клиента и обратно только для того, чтобы записать их в таблицу (insert()). Где данные сформировали, там и записывайте. В данном случае на SQL-сервере
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Теги
insert

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Arijit Basu: Dynamics AX 2009 Bulk Data insert using SSIS Blog bot DAX Blogs 0 09.03.2010 10:05
method insert() when insert table from outside susenyudha DAX in English 1 29.08.2008 18:51
axaptapedia: Howto insert a menu reference into the MainMenu Blog bot DAX Blogs 0 03.08.2007 23:20
Про Insert, DoInsert и IAxaptaRecord::Insert murad DAX: Программирование 5 23.05.2006 12:26

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

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

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