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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.10.2006, 12:07   #1  
sparur is offline
sparur
Участник
 
334 / 25 (1) +++
Регистрация: 19.05.2006
в классах все прекрасно, НО я так и не могу понять никак одну вещь. а именно...
Во всех классах этих используется ItemId, так вот где его брать??? мне что перебирать ВСЕ номенклатурные единицы и подставлять в этот класс??? БРЕД. Тогда получается надо делать while select... по таблице InventTrans или InventSum c ограничениями по складу и по МОЛу, и потом передавать в класс... НО какой тогда в этом смысл, если все сводится все равно к запросу по одной из таблиц?
Старый 17.10.2006, 12:11   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от sparur Посмотреть сообщение
...я так и не могу понять никак одну вещь. а именно...
http://axapta.mazzy.ru/lib/inventsumdate/
__________________
полезное на axForum, github, vk, coub.
Старый 17.10.2006, 12:23   #3  
sparur is offline
sparur
Участник
 
334 / 25 (1) +++
Регистрация: 19.05.2006
Цитата:
Сообщение от mazzy Посмотреть сообщение
видел, спасибо... я же говорю все сводится к запросу по таблице для перебора ItemId... То же самое можно сделать и на таблице складских проводок... Не вижу смысла и выигрыша в производительности...
Старый 17.10.2006, 12:39   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от sparur Посмотреть сообщение
видел, спасибо... я же говорю все сводится к запросу по таблице для перебора ItemId... То же самое можно сделать и на таблице складских проводок... Не вижу смысла и выигрыша в производительности...
Э-э-э-э.
Не видите вигрыша в производительности между перебором
в таблице номенклатур и в таблице проводок?

Ну, как скажете.

Согласен с glibs.
__________________
полезное на axForum, github, vk, coub.
Старый 17.10.2006, 12:45   #5  
sparur is offline
sparur
Участник
 
334 / 25 (1) +++
Регистрация: 19.05.2006
Цитата:
Сообщение от mazzy Посмотреть сообщение
Э-э-э-э.
Не видите вигрыша в производительности между перебором
в таблице номенклатур и в таблице проводок?

Ну, как скажете.

Согласен с glibs.
эээ, не совсем так поняли я не вижу смысла особого в использовании классов когда скажем дата достаточно поздняя, получается тоже самое (если не хуже) что и ограниченный запрос по складским проводкам, хотя... конечно спорно все это... эмпирика нужна ...
Старый 17.10.2006, 13:04   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от sparur Посмотреть сообщение
эээ, не совсем так поняли я не вижу смысла особого в использовании классов когда скажем дата достаточно поздняя, получается тоже самое (если не хуже) что и ограниченный запрос по складским проводкам, хотя... конечно спорно все это... эмпирика нужна ...
Нет, не то же самое.

Причины:
1. "Дата достаточно поздняя" у вас находится близко к началу только потому, что вы недавно начали. Через пару лет даже очень поздние даты в 99.9% случаев будут находится очень далеко от первых проводок
2. Один "ограниченный запрос по складским проводкам" блокирует на чтение очень большой набор записей. Скорее всего, на очень долгое время (пока работает отчет). Блокировки одного ограниченного запроса очень быстро будут эскалированы на всю таблицу. В результьте одного "ограниченного запроса" очень велика вероятность deadlock'ов и того, что остальные не смогут работать "очень долгое время".

Один ограниченный запрос может дать выигрыш в однопользовательских системах И практически никогда не дает выигрыша в многопользовательских.
__________________
полезное на axForum, github, vk, coub.
Старый 17.10.2006, 13:26   #7  
sparur is offline
sparur
Участник
 
334 / 25 (1) +++
Регистрация: 19.05.2006
Цитата:
Сообщение от mazzy Посмотреть сообщение
Нет, не то же самое.

Причины:
1. "Дата достаточно поздняя" у вас находится близко к началу только потому, что вы недавно начали. Через пару лет даже очень поздние даты в 99.9% случаев будут находится очень далеко от первых проводок
2. Один "ограниченный запрос по складским проводкам" блокирует на чтение очень большой набор записей. Скорее всего, на очень долгое время (пока работает отчет). Блокировки одного ограниченного запроса очень быстро будут эскалированы на всю таблицу. В результьте одного "ограниченного запроса" очень велика вероятность deadlock'ов и того, что остальные не смогут работать "очень долгое время".

Один ограниченный запрос может дать выигрыш в однопользовательских системах И практически никогда не дает выигрыша в многопользовательских.
ммм, да наверое Вы правы... ок буду чаще стараться пользоваться стандартными классами... Хотя еще все-таки не все и не до конца разобрал, так что вопросы думаю еще появятся и на этом форуме тоже

респект
Старый 17.10.2006, 16:21   #8  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от mazzy
...
Один "ограниченный запрос по складским проводкам" блокирует на чтение очень большой набор записей. Скорее всего, на очень долгое время (пока работает отчет).
...
А можно комментарий для любознательных попросить? Если кому не жалко.

Насколько я знаю, Аксаптовские отчеты (и формы тоже) используют грязное чтение и ничего не блокируют обычно (если в классе не наваять чего-нибудь для расчета данных для отчета, да еще и не обрамить это в транзакцию). По крайней мере на MS SQL так.

Но если речь идет о создании строк журнала, то, скорее всего, выборка попадет внутрь транзакции и будет блокировка на чтение (или как там оно называется). Так вот будет ли разница в плане блокировки между одним большим запросом и перебором в рамках одной транзакции InventTable и расчетом остатков с помощью классов?

Вопрос скорее общетеоретическо-блокировочный, нежели в рамках описанной выше задачи. Если кто может просто ссылку привести, где это на уровне домохозяек прописано, то это тоже будет хорошим ответом.
__________________
С уважением,
glibs®
Старый 17.10.2006, 12:11   #9  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
Цитата:
Сообщение от sparur Посмотреть сообщение
мне что перебирать ВСЕ номенклатурные единицы и подставлять в этот класс??? БРЕД.
Неужели трудно взять вышеназваную функцию, дублировать ее, и переделать для своих нужд - в вашем случае убрав в ней условие по ItemId?
Старый 17.10.2006, 12:24   #10  
sparur is offline
sparur
Участник
 
334 / 25 (1) +++
Регистрация: 19.05.2006
Цитата:
Сообщение от Roman777 Посмотреть сообщение
Неужели трудно взять вышеназваную функцию, дублировать ее, и переделать для своих нужд - в вашем случае убрав в ней условие по ItemId?
да нет конечно... но что-то мне подсказывает что есть более конструктивный способ решения
Старый 17.10.2006, 12:39   #11  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от sparur
...
мне что перебирать ВСЕ номенклатурные единицы и подставлять в этот класс???
...
Не все, а те, которые есть в InventSum.

Если нужны текущие остатки, то брать только не закрытые физически. Если остатки на дату, то все.
__________________
С уважением,
glibs®
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Количество строк в Query Владимир Максимов DAX: Программирование 19 11.08.2014 18:27
Тормозит копирование строк в буфер обмена ivas DAX: Программирование 20 21.08.2007 15:05
Пользовательский генератор строк-перечислений...- 2: Доп.вкладка для SysQueryForm Gustav DAX: База знаний и проекты 1 04.05.2007 18:04
БАГ: копирование строк накладных в новый заказ Антон Солдатов DAX: Функционал 2 03.12.2004 09:02
Как включить контроль изменений в журнале накладных ? NEO DAX: Функционал 0 17.06.2004 12:30

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

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

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