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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.12.2005, 16:34   #1  
Oleksandr is offline
Oleksandr
Участник
Аватар для Oleksandr
 
68 / 17 (1) ++
Регистрация: 19.03.2005
Адрес: Киев
выигрыш от update_recordset
Всем здравствуйте

Нигде не нашел - все же какой выигрыш дают групповые оперции *_recordset по сравнению с while select ?

Понятно, что зависит от многого, но в среднем - разы или проценты?

Заранее спасибо
__________________
--
regards, Oleksandr
Старый 15.12.2005, 17:18   #3  
Zan is offline
Zan
Участник
 
104 / 25 (1) +++
Регистрация: 22.07.2004
Адрес: I live in Moscow
2 Recoilme
а тестирование проводили?
результаты тестирования в студию
Старый 15.12.2005, 17:31   #4  
Zan is offline
Zan
Участник
 
104 / 25 (1) +++
Регистрация: 22.07.2004
Адрес: I live in Moscow
В случае update_recordset, delete_recordset скорее всего будут разы.
А вот в случае с insert_recordset, это весьма спорный вопрос.

Да, и попробуйте например выполнить следующую конструкцию:
PHP код:
    insert_recordset inventtabletest(itemId,ItemType)
    
select itemid,ItemType from inventtable;
    
group by itemid,ItemType
Старый 15.12.2005, 18:37   #5  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
glibs писал в сп4 исправили.
результаты готовить неохота.. не верите на слово, проверьте. Конечно если на 100 записях проверять будете - то у вас может и получатся спорные результаты, а вы на миллионах попробуйте, да ещё и при работающих пользователях. Почувствуйте разницу так сказать
Старый 15.12.2005, 18:43   #6  
Zan is offline
Zan
Участник
 
104 / 25 (1) +++
Регистрация: 22.07.2004
Адрес: I live in Moscow
вот вчера как раз на СП4 и тестировал

дегроссель дезель машин функционирь нихт
Старый 15.12.2005, 18:53   #7  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
видать я напутал чегой-то, выходит не поправили групбая в инсертрекордсете..
здесь можно пожаловаться
За это сообщение автора поблагодарили: Ronaldo (-1).
Старый 15.12.2005, 19:08   #8  
Zan is offline
Zan
Участник
 
104 / 25 (1) +++
Регистрация: 22.07.2004
Адрес: I live in Moscow
Да, уж не дошли руки у кого-то, не дошли ....

А жаловаться будем обязательно

а с гроупбаем там происходит следующее:

Первый запрос, который вставляет данные во временную таблицу:
PHP код:
SELECT 101090 AS f1,
              
'dem' AS DATAAREAID,
              
IDENTITY(int,1,1) AS RECID INTO #axapta_tmp_dem53  
FROM INVENTTABLE A(NOLOCK)  
WHERE (DATAAREAID='dem'
GROUP BY A.ITEMID,A.ITEMGROUPID 
ORDER BY A
.ITEMID,A.ITEMGROUPID OPTION(FAST 15
Второй запрос, который вставляет данные из временной таблицы в InventTable:
PHP код:
INSERT INTO INVENTTABLETEST (ITEMID,
                                                    
ITEMGROUPID,
                                                    
DATAAREAID,RECID)
SELECT F1,
              
F2,
              
DATAAREAID,
              
RECID+44049859 
FROM 
#axapta_tmp_dem53 
Обратите внимание, в первом запросе совсем забыли про второе поле в гроупбае.
Однако во втором вспомнили.
Ан нэт его во временной талице.

Вот тут то Акса и ругается благим матом
За это сообщение автора поблагодарили: Recoilme (3).
Старый 15.12.2005, 19:20   #9  
Zan is offline
Zan
Участник
 
104 / 25 (1) +++
Регистрация: 22.07.2004
Адрес: I live in Moscow
Да и еще вдогонку....

что при while select .....
что при insert, update, delete recordset

все равно стандартные методы на таблицах будут дергаться столько раз, сколько записей обрабатывается.

так что по поводу производительности все-таки спорный вопрос
Старый 15.12.2005, 19:24   #10  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Цитата:
все равно стандартные методы на таблицах будут дергаться столько раз, сколько записей обрабатывается
Это легко обходится
Старый 15.12.2005, 19:58   #11  
Zan is offline
Zan
Участник
 
104 / 25 (1) +++
Регистрация: 22.07.2004
Адрес: I live in Moscow

2 Wamr


не спорю, я бы даже сказал весьма легко.

PHP код:
     inventtabletest.skipDataMethods(true);

    
insert_recordset inventtabletest(itemId,ItemType)
    
select itemid,ItemType from inventtable
если вызвать перед оперцией вставки метод skipDataMethods(true), и передать ему соответствующий параметр, операция вставки будет происходить немного побыстрее

Последний раз редактировалось Zan; 15.12.2005 в 21:05.
Старый 16.12.2005, 09:32   #12  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
а если написать skipttscheck(1), skipdatabaselog(1), selectlocked(0) - будет как в рекламе старого мельника, всё быстрее и быстрей
Старый 16.12.2005, 11:44   #13  
Zan is offline
Zan
Участник
 
104 / 25 (1) +++
Регистрация: 22.07.2004
Адрес: I live in Moscow
еще....
Старый 16.12.2005, 13:49   #14  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
new Dictionary().tableTruncate(tablenum(RA_InventTrans), false);
работает быстрей delete_recordset , только восстановить потом невозможно
Старый 16.12.2005, 13:54   #15  
Zan is offline
Zan
Участник
 
104 / 25 (1) +++
Регистрация: 22.07.2004
Адрес: I live in Moscow
аккуратней с такими советами, а то вдруг кто-нибудь попробует
Старый 16.12.2005, 13:55   #16  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Class: RecordInsertList , хватит пожалуй..
а то вдруг кто-ть попробует и у него что-ть получится
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Есть ли выигрыш от RecordInsertList Wamr DAX: Программирование 30 18.09.2013 10:31
Проблема производительности при использовании виртуальных компаний. 7Up DAX: Программирование 51 05.02.2007 23:19

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

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

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