Перестраивает открытые индексные файлы.
REINDEX обновляет все индексные файлы, открытые в выбранной рабочей области.
REINDEX [COMPACT] |
Параметры
- COMPACT
-
Преобразует нормальные единичные индексные (.idx) файлы в компактные .idx файлы.
Примечания
Индексные файлы становятся устаревшими в случае, если вы открываете таблицу и произвлдите изменения в полях, являющихся ключевыми полями, не открывая соответствующего индексного файла. Когда индексный файл становится устаревшим, вы можете обновить его с помощью переиндексирования.
Visual FoxPro распознает каждый тип индексного файла: составной индексный (.cdx) файл, структурный .cdx файл и одиночный индексный (.idx) файл), и ренидексирует их соответствующим образом. Он обновляет все тэги в .cdx файлах и обновляет структурный файл .cdx, который открываются одновременно с открытием таблицы.
![]() |
---|
Для снижения нагрузки на сеть во время операции REINDEX, вы моежте использовать SYS(3050) - Set Buffer Memory Size для устнановки размера буффера памяти, способного вместить полную таблицу. Во время первого прохода, страница буфферируется локально и последующие проходы не пытаются прочесть буфферированные данные с удаленного компьютера. |
Любые индексные файлы, созданные с ключевым словом UNIQUE команды INDEX или с SET UNIQUE ON сохраняют их UNIQUE статус во время реиндексирования.
Для переиндексирования с помощью команды REINDEX устаревших индексных файлов используйте приведенные ниже команды:
![]() | |
---|---|
USE TableName INDEX OutdatedIndexNames REINDEX |
Пример
In the following example, ISEXCLUSIVE( ) verifies that the customer
table was opened for exclusive use. The table is not reindexed since the one in the current work area was not opened for exclusive use.
![]() | |
---|---|
cExclusive = SET('EXCLUSIVE') SET EXCLUSIVE OFF SET PATH TO (HOME(2) + 'Data\') OPEN DATA testdata && открывает тестовую базу данных USE Customer && не открывается эксклюзивно (для монопольного использования) USE Employee IN 0 EXCLUSIVE && открывается эксклюзивно (для монопольного использования)в другой рабочей области IF ISEXCLUSIVE( ) REINDEX && может быть выполнено только при условии, что таблица открыта эксклюзивно (для монопольного использования) ELSE WAIT WINDOW 'Таблица не открыта в монопольном режиме' ENDIF SET EXCLUSIVE &cExclusive |
Смотрите также
Справочное руководство
Команда INDEXКоманда SET INDEX
Команда SET EXCLUSIVE
Команда SET UNIQUE
Обзор функций SYS()
Команда USE