Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Тоу Д. -> "Настройка SQL. Для профессионалов" -> 19

Настройка SQL. Для профессионалов - Тоу Д.

Тоу Д. Настройка SQL. Для профессионалов — СПб.: Питер, 2004. — 333 c.
ISBN 5-94723-959-0
Скачать (прямая ссылка): nastroykasqldlyaprof2004.djvu
Предыдущая << 1 .. 13 14 15 16 17 18 < 19 > 20 21 22 23 24 25 .. 161 >> Следующая


Обновления — это самые дорогие операции с индексом. Если при обновлении изменяется хотя бы один индексированный столбец, база данных рассматривает его как вставку (нового значения) и удаление (старого значения). Такое дорогое двусоставное обновление, не обязательное в таблицах, необходимо для индексов, так как в действительности обновление значений индекса меняет местоположение строки в структуре индекса. К счастью, индексы по первичным ключам практически никогда не обновляются, если база данных разработана правильно, а обновления внешних ключей редки. Индексы, представляющие наибольшую опасность для производительности операций обновления, — это индексы по столбцам, не являющимся ключевыми, значение которых в реальных приложениях изменяется со временем (например, по столбцам состояний для сущностей, часто меняющих статус).

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

2. Основы доступа к данным

Редкие объекты базы данных

Простые таблицы и индексы в В-деревьях удовлетворяют практически всем нуждам базы данных. Ho вам нужно иметь хотя бы поверхностное представление о менее распространенных типах объектов баз данных, на случай, если понадобится привести доводы против безуспешных попыток решить проблемы при помощи неверных и экзотических инструментов. В этом разделе рассматриваются наиболее популярные специальные типы объектов.

Таблицы с индексной организацией

Таблицы с индексной организацией — это индексы, которые не указывают на таблицы. Это характерная возможность Oracle, но их можно имитировать в любой базе данных. Иногда база данных обнаруживает все столбцы, необходимые для выполнения запроса, в индексе, и использует только индекс, даже не обращаясь к соответствующей таблице. Если вы создали индекс, в котором содержатся все столбцы таблицы, возможно, вы захотите вообще избавиться от таблицы. Таблицы с индексной организацией работают в точности по этому сценарию, экономя пространство и снижая стоимость поддержки отдельной таблицы. Так как таблицы с индексной организацией не указывают ни на какую реальную таблицу, то им не нужно хранить идентификаторы строк. Поэтому в блок помещается больше строк, чем в обычные индексы по тем же столбцам. Если какой-то индекс находится буквально за порогом отметки, когда становится необходимым дополнительный уровень индексов, замена комбинации индекс-таблица более компактной таблицей с индексной организацией позволит устранить необходимость создания лишнего уровня.

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

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

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

¦ Иногда вы считываете строки в больших диапазонах, основанных на порядке сортировки индекса. Считывания больших диапазонов данных в индексе относительно эффективны в сравнении со считыванием тех же строк, разбросанных случайным образом по обычной таблице. Ho этот фактор в пользу таблиц с индексной организацией может конфликтовать с предыдущим фактором, так как доступ при помощи первичного ключа обычно является уникальным, а не доступом к большому диапазону данных. В случае составных первичных ключей вы иногда считываете диапазоны строк по частичным ключам, поэтому в ред-
Редкие ооъекты оазы данных

41

ких случаях оба этих фактора будут говорить в пользу таблиц с индексной организацией.

¦ Вы редко добавляете, удаляете и модифицируете строки. Обычные таблицы лучше обрабатывают частое изменение данных, чем таблицы с индексной организацией. В приложениях оперативной обработки транзакций (Online Transaction Processing, OLTP) данные в больших таблицах изменяются часто; в противном случае они бы слишком разрослись. Это аргумент против больших таблиц с индексной организацией в среде OLTP.
Предыдущая << 1 .. 13 14 15 16 17 18 < 19 > 20 21 22 23 24 25 .. 161 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100