Опции индексов экспорта базы данных
Диалоговое окно Индексы позволяет автоматически создавать индексы на таблицах базы данных, экспортированных из
IBM® SPSS Modeler. Можно задать наборы полей, которые вы хотите включить, и настроить при необходимости команду CREATE INDEX
.
Это диалоговое окно состоит из двух частей:
- В текстовом поле в верхней части выводится шаблон, с помощью которого можно сгенерировать одну или несколько команд
CREATE INDEX
, для которых по умолчанию используется следующий формат:CREATE INDEX <имя-индекса> ON <имя-таблицы>
- Таблица в нижней части этого диалогового окна позволяет добавить спецификации для каждого индекса, который вы захотите создать. Для каждого индекса задайте имя индекса и поля или столбцы для включения. Диалоговое окно автоматически генерирует значения параметров
<имя-индекса>
и<имя-таблицы>
соответствующим образом.Например, сгенерированный SQL для одного индекса на полях empid и deptid мог бы выглядеть примерно так:
CREATE INDEX MYTABLE_IDX1 ON MYTABLE(EMPID,DEPTID)
Можно добавить несколько строк, чтобы создать несколько индексов. Для каждой строки генерируется отдельная команда
CREATE INDEX
.
Настройка команды CREATE INDEX
Необязательно: вы можете настроить команду CREATE INDEX
для всех индексов или только для конкретного индекса. Эта опция обеспечивает гибкость согласования конкретных требований или опций баз данных и применения настроек ко всем индексам или только к конкретным (при необходимости).
- Выберите Настроить команду CREATE INDEX в верхней части диалогового окна, чтобы изменить шаблон, используемый для всех индексов, которые будут добавлены впоследствии. Имейте в виду, что изменения не будут применены к индексам, уже добавленным в таблицу, автоматически.
- Выберите в таблице одну или несколько строк и нажмите кнопку Изменить выбранные индексы в верхней части диалогового окна, чтобы применить текущие настройки ко всем выбранным индексам.
- Включите переключатель Настроить в каждой строке, чтобы изменить шаблон команды только для этого индекса.
Имейте в виду, что значения параметров <имя-индекса>
и <имя-таблицы>
генерируются диалоговым окном автоматически на основе спецификаций таблицы и не могут быть отредактированы непосредственно.
КЛЮЧЕВОЕ СЛОВО BITMAP. Если используется база данных Oracle, можно настроить шаблон для создания битового индекса (bitmap) вместо стандартного следующим образом:
CREATE BITMAP INDEX <имя-индекса>
ON <имя-таблицы>
Битовые индексы могут оказаться полезны для индексации столбцов с небольшим числом отличительных значений. Полученный SQL может выглядеть так:
CREATE BITMAP INDEX MYTABLE_IDX1 ON MYTABLE(COLOR)
ключевое слово UNIQUE. Большинство баз данных поддерживают ключевое слово UNIQUE
в команде CREATE INDEX
. Оно принудительно устанавливает ограничение уникальности подобное ограничению первичного ключа для базовой таблицы.
CREATE UNIQUE INDEX <имя-индекса>
ON <имя-таблицы>
Имейте в виду, что для полей, фактически назначаемых в качестве первичных ключей, эта спецификация необязательна. Большинство баз данных автоматически создадут индекс для любых полей, задаваемых как поля первичного ключа в команде CREATE TABLE
, поэтому создавать индексы на этих полях явным образом не обязательно. Дополнительную информацию смотрите в разделе Опции схемы экспорта базы данных.
Ключевое слово FILLFACTOR Некоторые физические параметры для индекса можно точно настроить. Например, SQL Server позволяет пользователям изменять размер индекса (после начального создания) ценой затрат на техобслуживание по мере внесения в таблицу последующих изменений.
CREATE INDEX MYTABLE_IDX1 ON MYTABLE(EMPID,DEPTID) WITH
FILLFACTOR=20
Другие комментарии
- Если индекс с указанным именем уже существует, создание индекса завершится неудачно. Все ошибки сначала будут обработаны как предупреждения, что разрешит создание последующих индексов, а затем обработаны повторно как сообщения об ошибках с записью в журнал сообщений после того, как будут предприняты все попытки создания индексов.
- Для оптимальной производительности индексы следует создавать после загрузки данных в таблицу. Индексы должны содержать по крайней мере один столбец.
- Перед выполнением обработки узла возможен предварительный просмотр сгенерированного SQL в журнале сообщений.
- Для временных таблиц, записываемых в базу данных, (то есть, при включенном кэшировании узлов) опции задания первичных ключей и индексов недоступны. Однако система может создавать индексы на временных таблицах соответствующим образом в зависимости от способа использования данных на узлах нисходящего потока. Например, если данные в кэше в дальнейшем будут объединены по столбцу DEPT, будет разумно индексировать таблицу в кэше по этому столбцу.
Индексы и оптимизация запросов
В некоторых системах управления базами данных, когда таблица базы данных уже создана, загружена и индексирована, требуется еще одна, дополнительная операция перед тем как оптимизатор сможет использовать индексы для ускорения выполнения запросов к этой новой таблице. Например, в Oracle оптимизатор запросов на основе стоимости требует, чтобы таблица была проанализирована перед тем, как ее индексы можно будет использовать в оптимизации запросов. Внутренний файл свойств ODBC для Oracle (невидимый для пользователей) содержит опцию для выполнения этой операции следующим образом:
# Определяется SQL, выполняемый после того, как таблица и все связанные с ней индексы
# будут созданы и заполнены
table_analysis_sql, 'ANALYZE TABLE <имя-таблицы> COMPUTE STATISTICS'
Этот шаг выполняется при каждом создании таблицы Oracle (независимо от того, определены ли первичные ключи или индексы). При необходимости файл свойств ODBC для дополнительных баз данных можно настроить аналогичным образом; обращайтесь за помощью в службу поддержки.