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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.06.2019, 18:46   #1  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
? DataAreId и Partition в индексах
В индексах, соданных в AOT, в добавок к полям, добавленным пользователем, в начале индекса всегда автоматически добавляются поля Partition и DataAreaId (если есть).

К примеру, в таблице SalesLine индекс TransIdx в AX содержит только поле InventTrans. При этом в SQL Server этот индекс содержит три поля: Partition, DataAreaId, InventTransId - именно в этом порядке.

Много лет назад, уже и не помню в какой версии Аксапты, на вроде бы одном из семинаров рассказывали, что с помощью какой-то достаточно простой конфигурации это поведение по умолчанию можно изменить так, чтобы Partition и DataAreaId добавлялись в конец индекса, а не в начало. То есть, после синхронизации базы данных индекс в SQL Server выглядел бы так: InventTransId, DataAreaId, Partition.

С тех пор много воды утекло, и так как сейчас гугление ничего по этому поводу не обнаружило, я уж и не уверен, не было ли это ложными воспоминаниями.

Подскажите, пожалуйста, кто в теме.
Старый 26.06.2019, 19:27   #2  
rDenis2 is offline
rDenis2
Участник
 
62 / 36 (2) +++
Регистрация: 13.05.2010
Если не ошибаюсь, надо в аксапте в АОТ, создать индекс и включить в него системные поля, dataareaid и т.д.
Старый 26.06.2019, 19:37   #3  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Цитата:
Сообщение от rDenis2 Посмотреть сообщение
надо в аксапте в АОТ, создать индекс и включить в него системные поля

Нет-нет, речь идёт именно о глобальной конфигурации в AX, которая бы затронула все индексы без необходимости их коррекции в AOT.
Старый 26.06.2019, 20:36   #4  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,273 / 3466 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Видимо вспоминается вот это сообщение
aEremenko: Порядок полей в индексе для DAX 3.0
Но в 2012 табличку SQLSYSTEMVARIABLES уже убили и на ее смену пришла табличка SYSGLOBALCONFIGURATION, в которой нет такого параметра.
Про нее только информация про литералы (т.е. как подставить в план запроса конкретные значения Partition и Dataareaid) встречается, а не про индексы
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: Hyper (1).
Старый 26.06.2019, 21:32   #5  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Видимо вспоминается вот это сообщение
aEremenko: Порядок полей в индексе для DAX 3.0

Да, то что надо, спасибо!
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Но в 2012 табличку SQLSYSTEMVARIABLES уже убили

Да нет, вот же она у меня перед глазами.

Код:
PARM	VALUE	IPARM	IVALUE
INDEX	297	13	NULL
За это сообщение автора поблагодарили: sukhanchik (2).
Старый 26.06.2019, 22:26   #6  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,273 / 3466 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Hyper Посмотреть сообщение
Да нет, вот же она у меня перед глазами.

Хм... и правда... Даже в D365FO она есть
__________________
Возможно сделать все. Вопрос времени
Старый 27.06.2019, 09:10   #7  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Если компания одна, то можно так

https://yandex.ru/search/touch/?text...2328018&lr=213
Старый 27.06.2019, 09:55   #8  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Я бы не рекомендовал "ковровые бомбардировки", лучше разбираться точечно.
Старый 27.06.2019, 11:17   #9  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Цитата:
Сообщение от Logger Посмотреть сообщение
Если компания одна, то можно так

Это не для последних версий, да и для одной компании мне не актуально.

SQLSYSTEMVARIABLES - это именно то, что я искал. Я вчера протестировал в AX 2012 - DataAreaId и Partition действительно переносятся в конец индекса, хотя я ожидал, что Partition будет последнем полем в индексе, но почему-то в конце находится DataAreaId, а Partition идет перед ним.
За это сообщение автора поблагодарили: Logger (3).
Старый 27.06.2019, 11:46   #10  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
На всякий случай добавлю, что 4-й битик надо взводить. Т.е. вместо 297 поставить 313
Старый 27.06.2019, 11:47   #11  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Из документации к 3-ке :

Цитата:
Value ‘0’ for indexes not supported, or
one or more of the other options
added together:
0 : Not supporting indexes.
1 : Default flag for enabling index
support.
2 : Index generation reversed (i.e.
most important index generated last).
4 : Allow DESC on index components
in CREATE INDEX statement.
8 : Add table qualifiers to index
Axapta System Variables Page 13-7
names.
16: Put the DATAAREAID (the
“company field) last in indexes, and do
not put the field in the ORDER BY
clause at all.
32: This session is using “RECIDs per
company”, which consequently will
add the DATAAREAID to the built-in
RecId-index.
64: This session is using “RECIDs per
company+table”
Старый 27.06.2019, 11:57   #12  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Цитата:
Сообщение от Logger Посмотреть сообщение
На всякий случай добавлю, что 4-й битик надо взводить. Т.е. вместо 297 поставить 313

Да, я так и тестировал.
За это сообщение автора поблагодарили: Logger (1).
Теги
ax 2012 r3, dataarea, index, partition, sqlsystemvariables

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axStart: delete an AX 2012 R2 or R3 partition Blog bot DAX Blogs 0 14.04.2015 15:11
Kashperuk Ivan: Tip: Connecting the Warehouse management device portal to a different company or partition in Dynamics AX Blog bot DAX Blogs 0 03.12.2014 19:11
atinkerersnotebook: Copy Data From One Partition To Another Using The Data Import Export Blog bot DAX Blogs 0 03.04.2014 15:11
Подсчет записей в ax2012 с учетом DataArea и Partition. Как лучше? mazzy DAX: Администрирование 0 20.05.2013 18:02
axaptacorner: Data partition in Ax 2012 R2 Blog bot DAX Blogs 0 21.01.2013 21:11
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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