:: Visual Foxpro, Foxpro for DOS
Re: Index On ... Unique и удаленная запись
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
akvvohinc
Это можно даже увидеть, ведь процесс индексации, который проходит в 2 этапа, можно отобразить на экране или в строке статуса.
Сначала генерируются ключи (keys generated), и видно что их количество не зависит от опции UNIQUE - количество сгенерированных ключей равно количеству записей что с UNIQUE, что без неё, но зависит от опции FOR - ключи будут создаваться только для записей, удовлетворяющих выражению FOR.

А затем уже создаются теги (records indexed) и количество проиндексированных записей (что с FOR, что без FOR) будет меньше количества созданных ключей, если задана опция UNIQUE и есть одинаковые ключи.

Это, конечно, всё очень хорошо - но помимо индексации (начального создания индекса) есть ещё и процесс поддержания индекса в актуальном состоянии - и тут Леонид как раз и намекнул что UNIQUE индекс, который весьма специфичен, т.к. по сути есть фильтрованный индекс по "динамическому" условию (убрать 2-е и последующие вхождения такого же ключа), будет вести себя, мягко говоря, странно. Поддержание индекса основано на изменении только одного ключа - для одной физической записи - "переиндексировать" другие записи фокс при этом не будет.

Поэтому и не стоит его использовать - ну разве что данные точно не меняются, или перед каждым использованием производится переиндексация (но тогда, как говорится, "а смысл?" такой индекс использовать).


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Index On ... Unique и удаленная запись
sphinx

Сообщений: 31187
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Цитата:
будет вести себя, мягко говоря, странно

Будет. И ты ниже пояснил. Я интуитивно чувствовал, что уникальные индексы не всегда хорошо и правильно, да и стараюсь на SQL (по быстродействию смотрим, иногда на индексах все же) выборку сделать. Иногда уникальность можно через подзапросы детектировать, чего в UNIQUE не сделать. Если только огород городить.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Index On ... Unique и удаленная запись
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
Simple777
Означает ли это, что одновременное использование опций UNIQUE и FOR должно всегда корректно работать?
Думаю, что сразу после создания такого тега проблем быть не должно.
А вот далее в процессе работы с таблицей (ввод, корректировка, удаление, восстановление)... - смотри сообщения Леонида и Игоря.

Я с постоянными unique-тегами не работал и не потому, что знал о проблемах - просто не было необходимости.
Ratings: 0 negative/0 positive
Re: Index On ... Unique и удаленная запись
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
akvvohinc
Думаю, что сразу после создания такого тега проблем быть не должно.
А вот далее в процессе работы с таблицей (ввод, корректировка, удаление, восстановление)... - смотри сообщения Леонида и Игоря.

Нет, никаких корректировок не было. Это был "просто просмотр" - как в приведённом мной примере. Если не будет лень, попробую воспроизвести проблему. Если это удастся, напишу об этом.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 29 (Гостей: 29)

© 2000-2024 Fox Club 
Яндекс.Метрика