
Общие теоретические сведения
Индексы - это заранее выбранные и распределенные в указанном вами порядке ссылки на записи таблицы. Индексы хранятся в отдельном файле либо с расширением .idx, либо с расширением .cdx
В idx-файле может храниться только один индекс, и длина индексного выражения не может превышать 100 символов. Cdx-файлы позволяют хранить несколько индексов с длиной индексного выражения до 240 символов. Само индексное выражение может представлять собой имена полей и функции, производящие какие-либо действия над именами полей.
Основная команда, служащая для создания индексных файлов, - INDEX.
INDEX ON <Выражение> ТО <Имя_idх-файла> TAG <Имя_тега> [OF <Имя_сdх-файла>]
[FOR <Условие >] [COMPACT] [ASCENDING DESCENDING] [UNIQUE CANDIDATE] [ADDITIVE][BINARY]
Выражение> - индексное выражение;
<Имя_idх-файла> - имя файла для хранения индекса (указывается, если создается одиночный индекс в idx-файле);
<Имя_тега> - имя индекса внутри комплексного индексного cdx-файла (указывается, если создается индекс внутри cdx-файла);
<Имя_сdх-файла> - имя файла для хранения индекса (указывается, если создается индекс в cdx-файле);
<Условие> - логическое условие для отбора записей. В индекс войдут только те записи, которые удовлетворяют условию.
COMPACT - создается компактный Idx-файл.
ASCENDING DESCENDING - направление сортировки. Если указано DESCENDING, то по убыванию. Если ничего не указывать, то сортировка происходит по возрастанию;
UNIQUE CANDIDATE - определение режима включения в индексный файл записей с повторяющимися ключевыми полями. Если UNIQUE, в индексный файл будет занесен только индекс первой из нескольких записей с одинаковыми ключевыми полями;
ADDITIVE - при создании индекса индексные файлы, уже открытые для данной таблицы, продолжают оставаться открытыми;
BINARY - создание бинарных индексов.
Использование индексов
Для того чтобы упорядочить записи по готовым индексам, можно при открытии таблицы указать соответствующий индексный файл. Для idx-файлов этого достаточно, а для cdx-файлов требуется еще указать тег индекса (имя нужного индекса внутри cdx-файла), по которому происходит упорядочивание.
В простейшем случае для idx-файлов команда имеет вид:
USE <Имя_таблицы> INDEX <Имя_idх-файла>
Для cdx-файлов есть два варианта.
Если при индексировании вы задали имя, совпадающее с именем таблицы, индексный файл откроется автоматически при открытии таблицы. То есть в простейшем случае вы используете команду
USE <Имя_таблицы> ORDER TAG <Имя_тега>
Если при индексировании вы задали имя, не совпадающее с именем таблицы, придется принудительно открывать cdx-файл, а затем указывать тег, по которому произойдет сортировка. Можно это сделать либо с помощью двух раздельных команд
USE <Имя_таблицы> INDEX <Имя_сdх-файла> SET ORDER TO TAG <Имя_тега>
либо посредством одной, но более сложной команды
USE <Имя_таблицы> INDEX <Имя_сdх-файла> ORDER TAG <Имя_тега>