30.11.2010, 18:05 | #1 |
Участник
|
Таблица InventSumDeltaDim и индекс
DAX2009,ru5
В стандартной Аксапте индекс уже содержит 16 полей. У нас используются ещё своя складская аналитика. У SQL сервера ограничение на 16 полей в индексе. Значит уже любое новое поле в индексе непозволительно. Если у индекса «удалить» кластерный и первичный, то вручную наше поле можно добавить в Included Columns для индекса. При синхронизации таблицы поле остаётся. Интересно поведение SQL сервера. SQL2008 не позволяет добавить новое поле в индеек. SQL2005 позволяет добавить поле (нет сообщения об ошибке) но «в тихую» удаляет из индекса другое поле. В нашем случае wMSPalletId. Вопрос. Как правильно добавить в таблицу свою Аналитику? Насколько критично снятие свойств индекса «кластерный» и «первичный»? |
|
30.11.2010, 19:09 | #2 |
Moderator
|
Критично свойство индекса под названием уникальность Если у вас 18 полей, а вы из них только 16 в индекс добавили, то вы не сможете уникальность индекса обеспечить (поскольку у вас надо проверять уникальность комбинации 18 полей, а в индексе их всего 16). Никакие included-колонки тут не помогут.
Единственное решение, которое я видел (хотя оно мне и не очень нравиться) - добавить в inventSumDeltaDim кроме нормальных аналитик еще и дополнительное новое поле (которое ни в каких группах полей не участвует), которое автоматически вычисляется как конкатенация 2-3-4 полей из складской аналитики. Дальше в вместо этих 2-3-4 полей добавляете в индекс новое поле. |
|
|
За это сообщение автора поблагодарили: EfimV (1). |
30.11.2010, 22:19 | #3 |
----------------
|
у вас используются все аналитики?
если нет, то неиспользуемые либо совсем поотключать, либо просто из индексов убрать |
|
|
За это сообщение автора поблагодарили: EfimV (1). |
Теги |
ax2009, sql server, индекс, складская аналитика |
|
|