русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Понятие индекса


Дата добавления: 2015-07-09; просмотров: 1256; Нарушение авторских прав


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

Селективность (selectivity) столбца — это процент строк, имеющих одинаковое значение для индексированного столбца. Селективность столбца высокая, если в нем мало одинаковые значений. Автоматически создаются индексы для первичных ключей или столбцов, для которых существует ограничение на уникальность значений. Эти индексы наиболее эффективны. Столбцы с малым количеством уникальных значений имеют низкую селективность, большинство распространенных способов организации индексов при поиске по столбцам с низкой селективностью не обеспечивают существенного ускорения.

Наряду с селективностью столбца при решении вопроса о целесообразности индексирования по тому или иному столбцу требуется учитывать динамику обновления данных в этом столбце (и вообще в таблице). Дело в том, что в процессе изменения данных столбца приходится вносить изменения не только в таблицу, но и в индекс на основе данного столбца, что замедляет операции обновления данных.

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

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

Индексы бывают двух видов — простые и составные. Составной индекс — это индекс, включающий более чем один столбец. Можно совместно проиндексировать два или более столбца, каждый из которых обладает низкой селективностью, а пара их значений — высокой. Если все столбцы, используемые запросом, входят в составной индекс, то обращения к таблицам можно вовсе избежать — все данные будут считаны только из индекса. Для эффективного использования составного индекса необходимо, чтобы логические условия были наложены на ведущие столбцы индекса, то есть на те столбцы, которые были указаны первыми при создании индекса.



Как правило, в индексах хранятся значения индексируемых столбцов таблицы и физические адреса строк для каждого из хранимых значений столбца (столбцов). В Oracle у каждой строки таблицы есть собственный уникальный идентификатор ROWID, который полностью определяет ее физический адрес на диске. Чтобы найти строку в таблице по заданному значению столбца, необходимо найти соответствующие ROWID в индексе и затем сразу перейти к указанным ими строкам в таблице.

Как уже упоминалось, индексы являются вспомогательным объектом, поэтому они не поддерживаются стандартом SQL. Тем не менее, все СУБД используют индексы и больших принципиальных различий в политике использования индексов не наблюдается.

На сегодняшний день создание и поддержка индексов в большинстве случаев является обязанностью администратора базы данных. Если разработчик имеет привилегию создания индексов, он самостоятельно может создавать индексы в целях ускорения своих поисковых запросов. Для того, чтобы принимать взвешенное решение о создании тех или иных индексов, нужно хорошо знать, какие именно способы организации индексов поддерживает конкретная СУБД.

Далее мы остановимся на основных способах индексирования, принятых в Oracle.



<== предыдущая лекция | следующая лекция ==>
Механизмы блокировки | Обзор индексов Oracle


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.954 сек.