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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.08.2007, 16:47   #1  
ivas is offline
ivas
Участник
Аватар для ivas
 
247 / 65 (3) ++++
Регистрация: 22.12.2005
Angry Тормозит копирование строк в буфер обмена
Тормозит копирование строк в буфер обмена

суть проблемы:

выделяем несколько строк в гриде жмем Ctrl + C или кнопку "копировать"
система занимается какойто активной деятельностью (судя по всему выкачивает все строки таблицы т.к. чем меньше строк в таблице тем быстрее)
на таблицах >100000 (InventTable, InventSum)строк копирование пары строк занимает несколько минут при этом аксапта отъедает ~200mb памяти,
однако если копировать одну строку копируется "мгновенно"
как с этим бороться может кто сталкивался?

ax 3.0 sp3 + Oracle 9i
и в 2х уровневой и в 3хуровневой конфигурации
Старый 17.08.2007, 17:10   #2  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 909 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Смириться.

Извлечение записей происходит курсором (по одной, точнее, небольшими пачками). При этом процесс копирования в буфер может сопровождаться расчетом display-методов.

Если вы делаете копирование чего-то постоянно и в больших объемах, то имеет смысл подумать об автоматизации процесса либо разработке альтернативного решения вставки данных в Эксельку. Поищите про ADO для примера. Типа вот этого

Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент)
__________________
С уважением,
glibs®
Старый 17.08.2007, 17:22   #3  
ivas is offline
ivas
Участник
Аватар для ivas
 
247 / 65 (3) ++++
Регистрация: 22.12.2005
Цитата:
Сообщение от glibs Посмотреть сообщение
Смириться.

Извлечение записей происходит курсором (по одной, точнее, небольшими пачками). При этом процесс копирования в буфер может сопровождаться расчетом display-методов.

Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент)
вы немного не поняли суть проблемы
если копировать одну строку копируется "мгновенно", а если 2 то 10 минут
Старый 17.08.2007, 19:11   #4  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 909 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Возможно. Прошу прощения.

А долгоиграющие запросы в процессе копирования двух записей порождаются? Когда форма открывается — не тормозит?

Попробуйте посмотреть профайлером, что происходит.
__________________
С уважением,
glibs®
Старый 20.08.2007, 15:09   #5  
ivas is offline
ivas
Участник
Аватар для ivas
 
247 / 65 (3) ++++
Регистрация: 22.12.2005
Цитата:
Сообщение от glibs Посмотреть сообщение
Возможно. Прошу прощения.

А долгоиграющие запросы в процессе копирования двух записей порождаются? Когда форма открывается — не тормозит?

Попробуйте посмотреть профайлером, что происходит.
\Classes\SysSetupFormRun\ task 20 137323.5350 \Forms\SysTableBrowser\Methods\ task 14 137323.3020

PHP код:
public int task(int _p1)
{
    
#task
    
FormDataSource formDataSource;

    
int ret;

    if (
_p1 == #taskFilter)
    
{
        
formDataSource this.objectSet();
        if (
formDataSource &&
            
formDataSource.queryRun() &&
            
formDataSource.queryRun().args() &&
            !
formDataSource.queryRun().args().caller())
        {
            
formDataSource.queryRun().args().caller(this);
        }
    }
 
   
ret super(_p1); //эта строка тормозит :(

    
return ret;

судя по всему в оракле перестал срабатывать хинт /*+ FIRST_ROWS */
тк он порядочно засран реиндексация и перестроение индексов на отдельной таблице не помогает
Старый 20.08.2007, 15:25   #6  
ivas is offline
ivas
Участник
Аватар для ivas
 
247 / 65 (3) ++++
Регистрация: 22.12.2005
хотя гоню, проблема гдето в приложении т.к. оно же на другом оракле тормозит также
Старый 20.08.2007, 15:34   #7  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 909 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Если трассировка дальше super() не разворачивается, то посмотрите запросы, которые идут к БД. Они либо долгоиграющие, либо их очень много, либо очень интересно, что у вас там происходит.
__________________
С уважением,
glibs®
Старый 20.08.2007, 15:38   #8  
ivas is offline
ivas
Участник
Аватар для ivas
 
247 / 65 (3) ++++
Регистрация: 22.12.2005
PHP код:
SELECT /*+  FIRST_ROWS */ a.itemida.postedqtya.postedvaluea.deducted
       
a.receiveda.reservphysicala.reservordereda.onordera.ordered
       
a.quotationissuea.quotationreceipta.del_configida.inventdimid
       
a.closeda.registereda.pickeda.availordereda.availphysical
       
a.physicalvaluea.arriveda.physicalinventa.closedqty
       
a.lastupddatephysicala.lastupddateexpecteda.postedvalueseccur_ru
       
a.physicalvalueseccur_rua.chi_inventlocationida.recid
    FROM inventsum a
    WHERE substr
(nls_lower(dataareaid), 13) = nls_lower(:in1)
    
ORDER BY substr(nls_lower(a.dataareaid), 13), a.closedsubstr(
             
nls_lower(a.itemid), 110
его cost 1 800 000
Старый 20.08.2007, 15:53   #9  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 909 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Это в каких деньгах (в смысле, единицах измерения)?

Ну, в общем, направление для поиска вам понятно. Я не укротитель Оракла, так что дальше я пасс.
__________________
С уважением,
glibs®
Старый 20.08.2007, 15:56   #10  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,360 / 2080 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Копенгаген, Дания
а расскажите, какие параметры стоят на закладке database сервера приложения?
Старый 20.08.2007, 16:00   #11  
ivas is offline
ivas
Участник
Аватар для ivas
 
247 / 65 (3) ++++
Регистрация: 22.12.2005
Цитата:
Сообщение от glibs Посмотреть сообщение
Это в каких деньгах (в смысле, единицах измерения)?
это в попугаях
очень грубо 1 "простой" селект из кеша = 1 попугай ~ 1мс
Старый 20.08.2007, 16:06   #12  
ivas is offline
ivas
Участник
Аватар для ivas
 
247 / 65 (3) ++++
Регистрация: 22.12.2005
Цитата:
Сообщение от kashperuk Посмотреть сообщение
а расскажите, какие параметры стоят на закладке database сервера приложения?
вот
Изображения
 
Старый 20.08.2007, 16:11   #13  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2454 (87) +++++++++
Регистрация: 20.08.2005
Да не в запросе дело.
Просто при попытке копировать несколько выделенных срок Ax зачем-то начинает фетчить с сервера все, что не получила.
Эта "фича" работает на sp3 cu1.
На сп5 cr2 Ax фетчит только один пакет записей и успокаивается
__________________
Axapta v.3.0 sp5 kr2
Старый 20.08.2007, 16:15   #14  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2454 (87) +++++++++
Регистрация: 20.08.2005
Угу. Точно. В kr2 исправили

Цитата:
6255

An attempt to copy multiple lines from a form with a large number of rows caused Microsoft Axapta to hang.

Problem
When Microsoft Axapta found marked lines it used the rowsLoaded() method as the loop exit condition. Also when it got a row from the cache it did a fetch ahead to get new rows if needed. So after additional fetching, the rowsLoaded() method returned another value, which was greater than the one before. So, the loop was continued with this logic until all the records were loaded into the cache.
Solution
Initialise the loop counter before starting the loop.
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: glibs (1).
Старый 20.08.2007, 16:18   #15  
ivas is offline
ivas
Участник
Аватар для ivas
 
247 / 65 (3) ++++
Регистрация: 22.12.2005
Цитата:
Сообщение от AndyD Посмотреть сообщение
Да не в запросе дело.
Просто при попытке копировать несколько выделенных срок Ax зачем-то начинает фетчить с сервера все, что не получила.
Эта "фича" работает на sp3 cu1.
На сп5 cr2 Ax фетчит только один пакет записей и успокаивается
во во я о том же,
че такое cu1? (у нас 3.0 sp3 Build 9.2)
фишка в том, что пару недель назад все было ок, по крайней мере юзеры не жаловались
Старый 20.08.2007, 17:12   #16  
ivas is offline
ivas
Участник
Аватар для ivas
 
247 / 65 (3) ++++
Регистрация: 22.12.2005
чего делать то?

ставить сервиспак? чета нехочется ченить отъедет запаришься разгребать
Старый 20.08.2007, 17:22   #17  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2454 (87) +++++++++
Регистрация: 20.08.2005
Зачем сервис-пак? KR2 достаточно поставить.
Что при этом изменится - смотрите на форуме, обсуждалось неоднократно
__________________
Axapta v.3.0 sp5 kr2
Старый 20.08.2007, 17:44   #18  
ivas is offline
ivas
Участник
Аватар для ivas
 
247 / 65 (3) ++++
Регистрация: 22.12.2005
Цитата:
Сообщение от AndyD Посмотреть сообщение
Зачем сервис-пак? KR2 достаточно поставить.
Что при этом изменится - смотрите на форуме, обсуждалось неоднократно
где можно скачать его? на мелкомягком говорят типа партнерс онли
Старый 20.08.2007, 18:16   #19  
ivas is offline
ivas
Участник
Аватар для ivas
 
247 / 65 (3) ++++
Регистрация: 22.12.2005
потестил на "чистом" приложении в другой базе, тоже самое :\
странно что юзеры 3года не жаловались ))
Старый 20.08.2007, 18:40   #20  
ivas is offline
ivas
Участник
Аватар для ivas
 
247 / 65 (3) ++++
Регистрация: 22.12.2005
вопрос открыт, где скачать KR2 или более позднюю версию?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Системный буфер обмена LiSA DAX: Программирование 15 01.04.2006 13:00
Не копирует из display-метода в буфер обмена akvi DAX: Программирование 6 08.12.2005 13:14
Копирование через буфер обмена из АХАРТы в Эксель... DaniK DAX: Функционал 3 05.01.2005 15:45
БАГ: копирование строк накладных в новый заказ Антон Солдатов DAX: Функционал 2 03.12.2004 09:02
Вот - про быстр. Ексель, буфер обмена, и т.д. POS DAX: Программирование 22 01.03.2004 18:42
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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