24.03.2016, 15:16 | #1 |
Участник
|
insert
Добрый день.
Возникла проблема При запуске формы запускается insert на 25к строк во временную таблицу. Занимает это примерно 6 минут, что не очень радует. Данные берутся через SQL Server и при insert-е считываются построчно. Данные в постоянную таблицу заносить нет смысла так как они постоянно добавляются, меняются и удаляются. Есть ли какой то вариант оптимизации? |
|
24.03.2016, 15:26 | #2 |
Участник
|
pack() на сервере, unpack() на клиенте и doInsert() по временную.
Правда 25к записей многовато. Но должно побыстрее стать. А зачем вообще такое кол-во записей в форме? Может стоит сделать 2 формы, что бы сократить кол-во записей на пару порядков?
__________________
Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу) Последний раз редактировалось Silence; 24.03.2016 в 15:29. |
|
24.03.2016, 15:38 | #3 |
Участник
|
Альтернативный вариант 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 |
Участник
|
|
|
24.03.2016, 19:18 | #5 |
Участник
|
Для Ax2012 можно писать напрямую во временную таблицу на стороне SQL-сервера
Получить SQL-имя таблицы типа TempDB Для младших версий, придется создать постоянную таблицу и озаботится ее сопровождением (корректной очисткой). Но общую идею высказал Alexius. Не надо гонять 25К данных на клиента и обратно только для того, чтобы записать их в таблицу (insert()). Где данные сформировали, там и записывайте. В данном случае на SQL-сервере
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|