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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.02.2010, 11:24   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от wojzeh Посмотреть сообщение
а поразвёртнутей можно? я не компетентен в вопросе настолько, чтоб из вопроса на вопрос составить себе ответ.
AraraT, видимо, имеет ввиду, что когда создаются строки автоматом по всему номенклатурному справочнику, то по многим строкам разница может получиться нулевая. Особенно строки, которых на складе нет (количество 0).
Такие строки и удаляются
Старый 11.02.2010, 12:17   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от SRF Посмотреть сообщение
Хоть и было, это давно, но все же спрошу, а действительно ли прирост был в 6 раз, ну или хотя бы в 2 или 3 раза ?

Действительно, подсчет строк не самый, наверное, лучший вариант для определения, есть ли записи в таблице или нет, но замечу, что во всех таблицах, на которых есть этот волшебный метод, присутствует индекс VoucherIdx, в состав, которого входят оба поля, так что подсчет количества строк должен быть сравним с поиском первой записи по времени, по крайней мере для повторных запросов.
Цитата:
Сообщение от fed Посмотреть сообщение
Стоит помнить, что для складских журналов можно настроить режим, при котором один ваучер выделяется не на строку, а на все строки с одинаковой датой . Для этого случая - гипотеза о сопоставимости времени выполнения count() и загрузки одной строки не срабатывает...
Да и в режиме Номенклатура+дата, выделение нового ваучера происходит только если в очередной строке номенклатура отличается от номенклатуры в предыдущей строке. Если у тебя, скажем, списывается много одинаковой номенклатуры с разными серийными номерами - гипотеза тоже не срабатывает.
Да, когда выделяется один ваучер на весь журнал, то может быть сотня тысяч записей, все с одним и тем же значением полей в индексе.

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

Только что знакомый мой попробовал симулировать данную ситуацию, создав табличку, соответствующий индекс, т.д. Кол-во записей - 100 тысяч.
Для выбора одной записи потребовалось:
CPU time: 0 ms, Elapsed time: 0 ms
Для выполнения подсчета записей потребовалось:
CPU time: 16 ms, Elapsed time: 100 ms

Результат, соответственно, таков, что время выбора одной записи лучше в 100 раз (на самом деле, в бесконечность, но кто считает )

P.S. Расчет был с использованием индекса по integer полю. Для индекса по нескольким полям, тем более строковым, разница будет еще больше.
Старый 11.02.2010, 16:55   #3  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
672 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
практически я уже переписал методы на всех этих таблицах, как учили в школе.

интересно, много ли ещё таких мест к оптимизации? можно их как-то все автоматически найти?
__________________
Felix nihil admirari
Старый 12.02.2010, 15:01   #4  
AraraT® is offline
AraraT®
Участник
1C
 
158 / 106 (4) +++++
Регистрация: 13.01.2006
Адрес: Республика Татарстан, г. Казань
Цитата:
Сообщение от kashperuk Посмотреть сообщение
AraraT, видимо, имеет ввиду, что когда создаются строки автоматом по всему номенклатурному справочнику, то по многим строкам разница может получиться нулевая. Особенно строки, которых на складе нет (количество 0).
Такие строки и удаляются
Совершенно верно, именно это я и собирался сказать.
Теги
inventjournal, оптимизация, производительность, запрос (query)

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX 40 Запрос при удалении записи f18 DAX: Программирование 2 29.12.2007 14:57
Копирование строк из InventJournalTrans в SalesLine Petruccio DAX: Программирование 11 29.09.2006 11:40
InventJournalTrans DreamCreator DAX: Программирование 7 14.12.2004 14:48
Почему в InventJournalTrans поле linenum вещественного типа?! ATimTim DAX: Программирование 7 17.06.2004 17:35
Не записыватся себестоимость в InventJournaltrans sk45 DAX: Функционал 33 29.08.2003 19:30

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

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

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