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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.02.2011, 12:56   #1  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Дубль
Старый 05.05.2011, 18:38   #2  
Drug is offline
Drug
Участник
 
67 / 14 (1) ++
Регистрация: 13.12.2005
Цитата:
Сообщение от rmv Посмотреть сообщение
Спасибо, очень информативно, мне помогло.
Но есть вопрос. Вы говорите по возможте создавать несколько мелких ключей, разве мы этим не увеличим время на выборку по фильтру из таблицы с промежуточными значениями?
Поясню по пунктам:
1. Теперь в Nav5 создается одна таблица с SumIndexField
2. Допустим в моей таблице 5 разных ключей с SumIndexField
3. Делаю SETCURRENKEY(Key3), потом SETRANGE(Field3,MyFilter3) и расчитываю CALCSUM(Qty)
4. Таким образом сначала необходимо будет отфильтровать таблицу по ключу, а потом посчитать сумму.
5. Не лучше создавать один длинный ключ?
Старый 10.05.2011, 14:27   #3  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Цитата:
Сообщение от Ivan Посмотреть сообщение
Но есть вопрос. Вы говорите по возможте создавать несколько мелких ключей, разве мы этим не увеличим время на выборку по фильтру из таблицы с промежуточными значениями?
Поясню по пунктам:
1. Теперь в Nav5 создается одна таблица с SumIndexField
2. Допустим в моей таблице 5 разных ключей с SumIndexField
3. Делаю SETCURRENKEY(Key3), потом SETRANGE(Field3,MyFilter3) и расчитываю CALCSUM(Qty)
4. Таким образом сначала необходимо будет отфильтровать таблицу по ключу, а потом посчитать сумму.
5. Не лучше создавать один длинный ключ?
Не совсем понял пример по пунктам, попробую пояснить свою мысль на крайнем случае.
Представьте себе - жил был длинный ключ с сифтами на таблице Value Entry из 10 вообщем-то нужных полей и тут skipped недальновидный программист решил добавить в конец ключа поле Entry No. - то бишь первичный ключ таблицы. Как же это безобразие отразиться для Нав 4 и Нав 5?
Нав 4 - под новый уровень добавит число записей, равное числу записей в таблице Value Entry. Вообщем-то отчеты в производительности не потеряют, так как селективность практически не поменяется. Сильно проиграет учет, так как вынуждет будет обслуживать доп. уровень.
Нав 5 - тут трагедия. Число записей в индексированной вьюхе ставит равной числу записей в таблице Value Entry. Немного проиграет учет, а вот отчеты вместо обработки агрегированных данных будут лопатить по сути ту же Value Entry.
Резюме для Нава 5 такое - чем больше записей в индексированном представлении, тем медленнее работает расчет сифт полей. Если есть возможность уменьшить число записей в индексированном представлении - следуюет ею воспользоваться, один из вариантов - по возможности разбивать ключ на более мелкие.
PS. Есть варианты ускорить расчеты сифтов на пару порядков, например перестроя порядок полей в ключе и используя покрытые индексы. Очень хочется верить что в новой версии платформы MS в наконец то откажется от поддержки натив ДБ и использует все преимущества SQL сервера.
За это сообщение автора поблагодарили: mira (1).
 


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

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

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