InterBase - статьи

         

Индексы


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

Следующий запрос выбирает из системной таблицы RDB$INDICES индексы, созданные пользователями, с указанием таблиц, для которых они были определены.

SELECT RDB$INDICES.RDB$INDEX_NAME, RDB$INDICES.RDB$RELATION_NAME FROM RDB$INDICES WHERE (NOT (RDB$INDICES.RDB$INDEX_NAME STARTING WITH 'RDB$')) ORDER BY RDB$INDICES.RDB$RELATION_NAME;

Ниже приведен запрос, который выдает основную, наиболее интересную информацию об индексах. Для уменьшения объема выдаваемой информации запрос сделан для таблицы SALES.

SELECT RDB$INDICES.RDB$INDEX_NAME, RDB$INDICES.RDB$RELATION_NAME, RDB$INDICES.RDB$UNIQUE_FLAG, RDB$INDICES.RDB$DESCRIPTION, RDB$INDICES.RDB$SEGMENT_COUNT, RDB$INDICES.RDB$INDEX_INACTIVE, RDB$INDICES.RDB$INDEX_TYPE, RDB$INDICES.RDB$STATISTICS FROM RDB$INDICES WHERE ( NOT (RDB$INDICES.RDB$INDEX_NAME STARTING WITH 'RDB$') and (RDB$INDICES.RDB$RELATION_NAME = 'SALES') ) ORDER BY RDB$INDICES.RDB$RELATION_NAME;

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

SELECT RDB$INDICES.RDB$INDEX_NAME, RDB$INDICES.RDB$RELATION_NAME, RDB$INDICES.RDB$UNIQUE_FLAG, RDB$INDICES.RDB$DESCRIPTION, RDB$INDICES.RDB$SEGMENT_COUNT, RDB$INDICES.RDB$INDEX_INACTIVE, RDB$INDICES.RDB$INDEX_TYPE, RDB$INDICES.RDB$STATISTICS, RDB$INDEX_SEGMENTS.RDB$FIELD_NAME, RDB$INDEX_SEGMENTS.RDB$FIELD_POSITION FROM RDB$INDICES INNER JOIN RDB$INDEX_SEGMENTS ON 0(RDB$INDICES.RDB$INDEX_NAME = RDB$INDEX_SEGMENTS.RDB$INDEX_NAME) WHERE ( NOT (RDB$INDICES.RDB$INDEX_NAME STARTING WITH 'RDB$') and (RDB$INDICES.RDB$RELATION_NAME = 'SALES') ) ORDER BY RDB$INDICES.RDB$INDEX_NAME, RDB$INDEX_SEGMENTS.RDB$FIELD_POSITION



Содержание раздела