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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.07.2011, 15:55   #1  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Любой индекс является покрывающим (если запрос по полям, входящим в него, естественно).
К уникальности индекса это не имеет отношения, так что, последний пункт отпадает

И не совсем понятно, почему не нужна гистограмма (и почему ее нет)?
Индекс ведь составной и, соответственно, кол-во записей для, к примеру, prodBOMJournal.JournalId, больше единицы (а если еще про dataAreaId вспомнить...)

Насчет того, что будет обновляться быстрее - если в обычном индексе будет по одному вхождению на каждый ключ, то скорость будет такая же, как и для уникального индекса

NB Если имелось в виду, что добавляем RecId к неуникальному индексу и ТОГДА обновление будет идти быстрее, за счет того, что не надо будет обрабатывать все неуникальные вхождения ключа, то согласен Но, опять же, и без включения уникальности такой подход будет работать быстрее
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 11.07.2011 в 16:11.
Старый 11.07.2011, 16:22   #2  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от AndyD Посмотреть сообщение
И не совсем понятно, почему не нужна гистограмма (и почему ее нет)?
Индекс ведь составной и, соответственно, кол-во записей для, к примеру, prodBOMJournal.JournalId, больше единицы (а если еще про dataAreaId вспомнить...)
Ну - если индекс помечен как уникальный, то запрос по всем полям в индексе однозначно вернет одну запись. Соответственно - данные о распределении хранить не надо. А вообще - гистограммы в SQL Server для меня загадочная штука. Где-то написано что они хранят только распределение ПЕРВОГО поля в индексе. Хотя на практике, первое поле в Аксапте это почти всегда dataareaid. И гистограма не должна содержать больше входов чем у тебя компаний в БД. А она содержит
Так что возможно я здесь и неправ.
Во вторых, если читать дискуссию с начала, то речь идет не только о признаке уникальности индекса, но и вообще о том как правильно подбирать ключи индекса и по каким принципам поля в индекс включают. Вот я и решил некие вещи напомнить.

А вообще по проблеме конкретной таблицы prodJournalBOM, я думаю там расставили признаки уникальности только для кэширования. Более того, могу предположить что разработчикам просто тупо спустили метрику "Сконвертировать n индексов из неуникальные в уникальные" - Типа из общих соображений, как в 2012ой все отнормализовали из общих соображений. Вот они и сконвертировали
Теги
index, indexunique, recid, индекс

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axperf: Create RecID index on tables with Created/Modified DateTime fields Blog bot DAX Blogs 0 20.06.2009 10:05
Главная книга / Запросы / Аудит (TransactionLog) Зачем и кому он нужен? ta_and DAX: Функционал 18 24.09.2008 10:14
RecId и уникальный индекс York DAX: Программирование 4 25.08.2008 10:47
зачем нужен WebTarget? yooshi DAX: Программирование 0 11.11.2005 14:22
Зачем таблице нужен релэйшн на саму себя? Artild DAX: Программирование 2 21.07.2003 11:52

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

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

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