07.01.2011, 01:45 | #1 |
Участник
|
Параметр ком.строки crosscompany и место поля dataareaid в индексах
Коллега обнаружил очень занятную особенность ядра AX 2009: помните, раньше был такой параметр командной строки -internal=crosscompany, после добавления которого можно было играться позицией поля dataareaid в индексе? Так вот, в AX 2009 этот режим включен по умолчанию, так что можно в любой момент у любого индекса таблицы, чьи данные хранятся в разрезе компаний, указать, каким именно полем по счету должно быть в этом индексе поле dataareaid. Это очень удобно с учетом того, что в AX 2009 появилась возможность делать запросы сразу по нескольким компаниям и в куче мест стандартного функционала она активно используется. Зачастую генерятся запросы, которым dataareaid на первом месте в индексах ну совсем ни к чему, и такие индексы теперь очень просто стало подправлять: достаточно явно добавить в индекс поле dataareaid и переместить его на нужное место в списке индексируемых полей.
|
|
|
За это сообщение автора поблагодарили: mazzy (2), AlGol (2), Logger (3), lev (5), jonny (3). |
02.02.2011, 11:45 | #2 |
Участник
|
|
|
18.02.2013, 09:38 | #3 |
Участник
|
Всем добрый день. В AX4 есть возможность добавлять в индекс поле DataAreaId и ставить его в любой позиции, хоть в конец. Что собственно дает небольшой прирост производительности по некоторым полям.
Есть ли возможность средствами AX вообще сделать индекс без DataAreaId, оставив свойство SaveDataPerCompany без изменений. Например реализовать такую рекомендацию от DBAшников: X++: CREATE NONCLUSTERED INDEX [IX_INVENTTABLE_ITEMID_ITEMNAME]
ON [dbo].[INVENTTABLE] ([ITEMID],[ITEMNAME])
WITH (ONLINE = ON, SORT_IN_TEMPDB = ON )
ON [Indexes]
GO
__________________
// no comments |
|
18.02.2013, 10:27 | #4 |
Участник
|
Штатно, насколько я знаю, если поле DataAreaId физически создается Аксаптой в таблице, то оно явно или неявно будет и в каждом индексе, создаваемом в AOT. В этих условиях индекс без DataAreaId можно создать руками в БД, но чтобы при синхронизации Аксапта его не прибила, нужно предпринять дополнительные усилия.
|
|
|
За это сообщение автора поблагодарили: dech (1). |
18.02.2013, 10:29 | #5 |
Участник
|
Цитата:
Есть ли возможность средствами AX вообще сделать индекс без DataAreaId, оставив свойство SaveDataPerCompany без изменений
Если dataareaId мешает в начале, можно его последним полем поставить. |
|
18.02.2013, 11:16 | #6 |
Модератор
|
Скажите своим DBA чтоб меньше с DTA баловались, он им такого насоветует..
__________________
-ТСЯ или -ТЬСЯ ? |
|
18.02.2013, 13:28 | #7 |
Участник
|
Поскольку У нас в AX более одной компании, а InventTable и InventSum являются таблицами серьезными, я решил послать админов куда подальше. На худой конец в индексе добавим поле в конец списка, как я и планировал.
__________________
// no comments |
|
Теги |
ax2009, crosscompany, индекс |
|
|