22.11.2007, 15:23 | #1 |
Участник
|
Почему незаполнен PrimeryIndex ?
Таблицы CustTrans, InventTrans, CustInvoiceJour etc имеют штук по 5 индексов.
Есть среди них и уникальные, например, в InventTrans это RecId и TransIdIdx. Почему в св-вах таблицы не указан PrimeryIndex ? Чем грозит заполнение? (Ax 3.0 SP3) |
|
22.11.2007, 17:26 | #2 |
MCTS
|
Рискну предположить, что PrimaryIndex указывается для работы механизма кэширования. Цитата из Developer's Guide:
"The enabling of caching on a table is dependent on the existence of a unique index. The caching key is determined either by the primaryIndex in the table, if one exists, or the first unique index." Поэтому указание PrimaryIndex без указания способа кэширования, как я понимаю, ничем не грозит. |
|
22.11.2007, 18:29 | #3 |
Участник
|
Помимо изменения индекса, используемого для кэширования, заполнение свойства PrimaryIndex приведет к тому, что в БД на таблице будет добавлен constrain primary key; у таблиц с незаполненным PrimaryIndex таких constrain'ов в БД нет.
|
|
24.11.2007, 13:45 | #4 |
Участник
|
вот тут http://blogs.msdn.com/aeremenk/archi...5/3699503.aspx
сказано следующее: Для создания репликации требуется первичный ключ (primary key) по таблице; таким образом, для таблиц безпервичного ключа необходимо изменить один из уникальных индексов и установить его как основной в параметрах таблицы в Репозитарии прикладных объектов (AOT) Microsoft Dynamics AX. После чего процесс синхронизации изменит структуру этих таблиц; однако синхронизация может занять достаточно большое количество времени в зависимости от размера таблицы и имеющегося оборудования сервера базы данных. Итак...я выставляю PrimaryIndex и не указываю тип кеширования. А если на таблице стоят ключи, среди них, нет уникальных...св-во allowDuplicates = Yes тогда как?...Выставлять RecId в качестве уникального индекса? каким боком оно может вылезти... (база Аксапты небольшая... за года работы кол-во строк в InvenTrans 400 000) |
|