Создавать индексы для таблиц Вы можете в процессе создания структур этих таблиц, или позднее, после создания структуры таблицы. При создании индекса для таблицы, Вы определяете индексное выражение, которое может содержать имена полей таблицы, и определяет порядок расположения записей данной таблица при активном индексе. Вы можете также создать выражение фильтра, который будет определять условие включения записей таблицы в данный индекс.

NoteЗамечание

Индексы создаются достаточно легко, но их наличие может несколько замедлить выполнение приложения. Вам нет необходимости создавать индексы для каждого поля таблицы. Если индекс редко используется, то он может замедлить выполнение программы.

Создавать индексы можно при помощи системного средства Visual FoxPro Table Designer, или программным способом. Для дополнительной информации об используемых командах см. раздел Созание индексов программным способом.

NoteПримечание

После создания индекса, Вам нужно активировать его для данной таблицы. См. дополнительно раздел Как: Установить управляющий индекс.

Для создания индекса при помощи Table Designer

  1. Откройте Table Designer для модификации вашей таблицы.

  2. В Table Designer, выберите закладку Indexes.

  3. В боксе Name, введите имя тэга индекса (index tag).

  4. В списке Type, выберите тип создаваемого индекса.

  5. В боксе Expression, задайте имя поля, которое будет определять порядок записей таблицы.

    -или-

    Постройте индексное выражение, нажав кнопку ellipsis - многоточие (...), расположенную справа.

    NoteПримечание

    При создании индексного выражения для "двоичных" индексов, Вы должны определить логическое условие, которое отфильтровывает недействительные значения. Если индексное выражение в дальнейшем будет оцениваться как недействительное (или как недопустимое), то система Visual FoxPro может сгенерировать ошибочную ситуацию.

  6. Нажмите OK.

О типах индексов см. дополнительно типы индексов в Visual FoxPro.

Дополнительные соображения относительно индексных выражений см. в разделах Создание индексов, основанных на выражениях или Рекомендации по созданию индексных выражений.

Для индексного выражения Вы можете создать условие фильтра, которое определит условие включение записей таблицы в создаваемый индекс. См. дополнительно раздел Как: Отфильтровать Данные.

При создании индекса для таблицы, система Visual FoxPro автоматически создает структурированный компактный индексный файл, (.cdx) в котором будут храниться индексные таблицы. Данный структурный индекс имеет аналогичное имя таблицы; он открывается автоматически, вместе с открытием таблицы. См. дополнительно раздел Индексные файлы Visual FoxPro.

NoteЗамечание

По-умолчанию, Visual FoxPro размещает записи при активном индексе в порядке возрастания (ascending order). Вы можете, дополнительно, указать отображение записей в порядке убывания (descending order), это делается при создании индекса, или в дальнейшем, после создания индекса. См. дополнительно раздел  Как: Как отобразить записи в Убывающем порядке.

Как Вы работаете с записями вашей таблицы? Вы можете спроектировать различные методы доступа к записям таблицы (располагать записи в различных порядках следования). Например, Вам нужно, чтобы записи таблицы customer располагались по порядку имен фирм-контактеров,  чтобы быстро ныйти необходимого клиента, или: по порядку почтовых адресов данных клиентов - для эффективной рассылки необходимой корреспонденции своим адресатам. С помощью индексов Вы можете создавать различные сценарии обработки таблиц с данными, в зависимости от текущих требований Вашего бизнеса.

Создание Индексов программным способом

Структурированные компактные индексы (.cdx) можно создавать используя обычные команды Visual FoxPro. Это можно сделать при помощи команды SQL CREATE TABLE при начальном создании стркутуры таблицы, или создать индекс для существующей таблицы при помощи команды SQL ALTER TABLE, или при помощи команды INDEX - для уже существующей таблицы.

NoteПримечание

Если Вы хотите создать первичный (primary) индекс, то используйте команды SQL CREATE TABLE или ALTER TABLE. С помощью команды  INDEX Вы не сможете создать первичный индекс.

Для создания структурного индекса (.cdx) при создании создании структуры таблицы

  1. Используйте команду SQL CREATE TABLE для определения имени ключевого поля таблицы.

  2. Для создания первичного ключа (индекса), укажите опцию PRIMARY KEY вместе с необходимым Вам полем - ключем таблицы.

    -или-

    Для создания индекса типа candidate index, укажите опцию UNIQUE.

    NoteПримечание

    Включение опции UNIQUE - это не тоже самое, что и уникальный индекс.

    -или-

    Для всех других индексов, укажите опцию FOREIGN KEY.

Для создания структурного индекса (.cdx) для уже существующей таблицы

  1. Используйте команду SQL ALTER TABLE для определения имени ключевого поля таблицы.

  2. Для создания первичного ключа (индекса), укажите опцию PRIMARY KEY или ADD PRIMARY KEY вместе с полем, которое должно стать индексным ключем.

    -или-

    Для создания индекса типа candidate index, укажите опцию ADD UNIQUE.

    -или-

    Для всех других индексов, укажите опцию ADD FOREIGN KEY.

Например, для таблицы Customer из базы данных TestData, Вы можете создать первичный ключ по полю Cust_ID при помощи следующих команд:

  CopyCode imageКопировать Код
ALTER TABLE Customer ADD PRIMARY KEY Cust_ID TAG Cust_ID
ALTER TABLE Customer ALTER COLUMN Cust_ID c(5) PRIMARY KEY

См. дополнительно разделы Команда CREATE TABLE - SQL, Команда ALTER TABLE - SQL, или Команда INDEX .

Создать структурированный индекс (.cdx) можно из нескольких независимых индексных файлов (.idx); для этого используется команда COPY INDEXES , в которой отсутствует опция TO.

Для создания структурного индекса (.cdx) из нескольких индексных файлов (.idx)

  1. Используйте команду COPY INDEXES, в которой укажите один или несколько имен независимых индексных файлов  (.idx). Если все нужные индексные файлы уже открыты, то можно указать опцию ALL , (вместо имен индексных файлов).

  2. Опция TO - не указывается.

См. дополнительно раздел команда COPY INDEXES.

См. также