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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.04.2011, 18:38   #1  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Hyper Посмотреть сообщение
Разумеется, одной транзакцией этого делать нельзя.
Почему "разумеется"? Иногда можно, иногда даже нужно, иногда нельзя. Зависит от ситуации.

Цитата:
Сообщение от Hyper Посмотреть сообщение
да, если делать отдельный ttsbegin/ttscommit для каждой записи, все вроде работает. ...Но мне почему-то казалось, что групповое обновление записей (скажем, 500 или 1000 в одной транзакции) на больших объемах даст ощутимый прирост производительности...И вот такой вот код уже не работает:
А как-нибудь вот так?

X++:
    Table1 table1Loop;
    Table1 table1;
    int bulk = 5000;    // 5;
    int i;
;
    while select table1Loop
        order by recId
    {
        if (i==0)
            ttsbegin;
        i++;
        table1 = Table1::findRec(table1Loop.RecId, true);
        table1.Field1 =  strfmt("Blah %1", i);
        table1.doupdate();
        if (i mod bulk == 0)
        {
            ttscommit;
            ttsbegin;
        }
    }

    if (i>0)
        ttscommit;
Старый 05.04.2011, 18:46   #2  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Цитата:
Сообщение от oip Посмотреть сообщение
Почему "разумеется"? Иногда можно, иногда даже нужно, иногда нельзя. Зависит от ситуации.
700 000 записей в одной транзакции? Причем там не одна такая таблица.

Цитата:
Сообщение от oip Посмотреть сообщение
А как-нибудь вот так?
Так тоже пробовал. Глючило - ругалось на что-то вроде unbalanced ttsbegin/ttscommit.
Старый 05.04.2011, 18:50   #3  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Hyper Посмотреть сообщение
700 000 записей в одной транзакции? Причем там не одна такая таблица.
А почему нет?

Цитата:
Сообщение от Hyper Посмотреть сообщение
Так тоже пробовал. Глючило - ругалось на что-то вроде unbalanced ttsbegin/ttscommit.
Ну так надо сделать их balanced. Я свой код не проверял, Аксапты сейчас нет, но свиду вроде с транзакциями все нормально.
Теги
axapta

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
вывод количества записей в таблице на web форме и указание текущей страницы таблицы bambuk1960 DAX: Программирование 1 06.07.2006 13:27
Axapta SP4 EE FP1 и Axapta SP4 EE polygris DAX: Администрирование 9 27.01.2006 11:27
Axapta 3.0 SP4 - нет русского языка Grimly DAX: Администрирование 3 06.12.2005 12:53
Установка Axapta 3.0 SP4 Easten Europe Alexander A. DAX: Администрирование 0 23.08.2005 15:24
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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