Перестраивает открытые индексные файлы.
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