Oracle Создать индекс

Oracle Sozdat Indeks



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

Одним из примеров использования индекса базы данных является система управления взаимоотношениями с клиентами.







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



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



Чтобы обойти это, мы можем использовать индекс базы данных.





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

В этом руководстве вы узнаете, как использовать команду CREATE INDEX в базе данных Oracle для инициализации нового индекса.



Заявление Oracle о создании индекса

Ниже показан синтаксис оператора CREATE INDEX в базах данных Oracle:

СОЗДАТЬ ИНДЕКС index_name
ON имя_таблицы (столбец1, столбец2, ...);

Приведенный выше синтаксис создает индекс с именем имя_индекса в таблице с именем имя_таблицы, используя указанные столбцы (столбец1, столбец2 и т. д.) в качестве ключа для индекса.

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

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

Давайте посмотрим на несколько примеров того, как мы можем это сделать.

Пример создания индекса Oracle

Предположим, у нас есть таблица, содержащая информацию о сотрудниках, как показано в выводе ниже:

выберите имя, фамилию, зарплату, дату найма из СОТРУДНИКОВ;

Oracle создает индекс для одного столбца

Предположим, мы хотим создать индекс, используя столбец first_name. Мы можем запустить запрос, как показано ниже:

создать индекс first_name_lookup для EMPLOYEES(FIRST_NAME);

Этот оператор CREATE INDEX создает индекс с именем first_name_lookup в таблице EMPLOYEES, используя столбец FIRST_NAME в качестве ключа для индекса. Этот индекс можно использовать для повышения производительности запросов, которые ищут сотрудников по имени.

После создания индекса мы можем использовать его для поиска конкретного сотрудника, как показано ниже:

ВЫБЕРИТЕ имя, фамилию, зарплату, дату найма
ОТ сотрудников
ГДЕ first_name = 'Уильям';

Результат:

Без индекса first_name_lookup системе базы данных пришлось бы сканировать всю таблицу EMPLOYEES, чтобы найти все строки, в которых столбец FIRST_NAME равен «William». индексировать, используя значение «John» в качестве ключа, а затем извлекать запрошенные строки из таблицы, что будет намного быстрее.

Вы можете просмотреть шаги, используемые при выполнении запроса с помощью команды объяснения плана, как показано ниже:

объяснить план для SELECT имя_имя, фамилия_имя, зарплата, дата_найма
ОТ сотрудников
ГДЕ first_name = 'Уильям';

Результирующий план запроса:

Пример 2. Oracle создает индекс с несколькими столбцами

Точно так же мы можем создать индекс, состоящий из более чем одного столбца в данной таблице. Например, предположим, что мы хотим создать индекс, состоящий из столбцов first_name и last_name.

Мы можем использовать код, как показано ниже:

создать индекс multi_lookup для EMPLOYEES (FIRST_NAME, LAST_NAME);

Этот оператор CREATE INDEX создает индекс с именем multi_lookup в таблице EMPLOYEES, используя столбцы FIRST_NAME и LAST_NAME в качестве ключа для индекса.

После создания мы можем использовать этот индекс, как показано в примере запроса:

ВЫБЕРИТЕ имя, фамилию, зарплату, дату найма
ОТ сотрудников
ГДЕ first_name = 'Уильям' И last_name = 'Смит';

Результирующее значение:

И здесь у вас есть метод ускорения ваших запросов к базе данных с помощью индексов для ограничения области поиска.

Заключение

Оператор CREATE INDEX в Oracle позволяет нам создать индекс для таблицы, чтобы повысить производительность операций извлечения данных. Однако, хотя индексы могут повысить производительность запросов, они также влекут за собой штрафы за дисковое пространство, что приводит к снижению скорости операций записи, используйте их только при необходимости.