|
|
#7 |
|
Moderator
|
Цитата:
Сообщение от ZVV
Аксапта, насколько я знаю, так не работает (перебирает неуникальные индексы) по указанной выше причине - всегда есть уникальный индекс и она его использует.
В частности да, при выполнении .update() или .delete(), в чём можно убедиться, включив лог операторов SQL.Или это было о том как теоретически могло бы быть? ![]() Насколько я знаю - некоторые БД пытались решить эту проблему за счет того, что индекс подспудно сортировался по сочетанию ключ+физический адрес записи (ROW_ID). (То есть - значение ссылки на запись становилась некой виртуальной частью ключа). Однако - на практике это приводило к изрядным проблемам, поскольку приводило к усиленной перебалансировке дерева страниц при вставке новых записей. Кроме того - при реорганизации и упаковке таблиц, это усложняло перестроение индексов. Так что - насколько я понимаю, в текущих версиях и SQL Server и Oracle используется именно такой подход к удалению ключей, который я описал... |
|
|
|
| За это сообщение автора поблагодарили: Logger (1), Kabardian (4). | |
| Теги |
| index, indexunique, recid, индекс |
|
|
|