Порядок записей при вставке
Доброго времени суток!
Последние три дня искал решение для такой проблемы (и только что решил): при вставке в таблицу InventJournalTransTemplate (создана на var слое) записи становились не последовательно (в порядке вставки), а в соответствии с одним из индексов (не кластерный, не Primary в Аксапте). Если отключаю этот индекс то порядок становился совсем необъяснимым. На таблице в Аксапте не было PrimaryIndex, нет и кластерного индекса.
Существует три индекса: TemplateIdx (TransTemplateId), JournalIdx(JournalId), JournalInventDimIdx (JournalId, InventDimId)
При вставке в таблицу записи становились в порядке соответствующим (сортируются по полям индекса) JournalInventDimIdx.
Что увидел на SQL Srv:
I_30008TEMPLATEIDX DATAAERAID, TRANSTEMPLATEID
I_30008JOURNALIDX DATAAERAID, JOURNALID
I_3008JOURNALINVENTDIMIDX DATAAREAID, JOURNALID, INVENTDIMID, RECID
Интересно, что SQL Srv в индекс I_3008JOURNALINVENTDIMIDX добавил RecId, хотя в Аксапте его нет. Как я понял, SQL Srv добавил RecId для того чтобы сделать индекс уникальным и использовать как PrimaryKey.
Проблему решило добавление RecId на индекс TemplateIdx в Аксапте + сделал его уникальным и Primary.
Вопрос -- правильно ли я поступил?
|