|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Dmitry Popov 2:5020/400 21 Feb 2001 11:43:59 To : All Subject : Re: индексы в ИБ -------------------------------------------------------------------------------- On Mon, 19 Feb 2001, Dmitry Shykhman wrote: > 15 Feb 01 18:27, you wrote to all: > > DK> А идея сканирования индекса здравая, надо будет у > DK> архитекторов Interbase спросить, а не стоит ли в ключи добавить номер > DK> транзакции - не только для count, но и для ускорения сборки мусора в > DK> индексах с большим количеством дубликатов. > > Дак размер индексов возрастёт со всеми вытекающими. Зависит от размера ключа. Может быть стоило бы опцию сделать - индекс с транзакциями или без. Или добавлять их только при размере ключа, превышающем определённый порог. Так и так неоднозначные вопросы возникают. > Мне интересно другое - как удаётся эффективно обеспечить UNIQUE constraint, > если в БД вполне может лежать старая версия удалённой записи, и в это время > добавляться новая запись с тем же ключом. В индексе должны быть обе, и версий > там нет. > > Что, создаётся некая дополнительная структура, или сервер лезет за уточнением > к самим записям? Судя по тому, что я видел в ods.h, он лезет в данные. То есть тот факт, что индекс объявлен уникальным на его физической структуре не сказывается, дубликаты по-прежнему допустимы. Hо: при добавлении в индекс нового элемента сначала проверяется наличие старого. Если подходящие найдены, то тогда лезет в данные, для уверенности, что ни одна из записей не видна в контексте добавляющей транзакции. То есть вся таблица данных, разумеется, не сканируется, и накладные расходы получаются не очень большими. Хотя конечно хотелось бы, чтобы их не было совсем. > Dmitry -- Дмитрий Попов, mailto:popov@krista.ru --- ifmail v.2.15dev5 * Origin: Krista NPO (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/10584da07b474.html, оценка из 5, голосов 10
|