Проектирование индексов
Индексы используются СУБД для быстрого поиска строки в таблице. По своей организации индексы представляют, как правило, структуры данных в виде двоичных деревьев. Индексы позволяют избегать полных просмотров таблиц, снижающих производительность системы. Индекс хранит последовательность упорядочивания данных в поле (полях) таблицы по возрастанию или убыванию в виде физических номеров записей. Эти служебные системные номера генерируются СУБД по мере формирования каждой новой строки таблицы. Используя индекс, СУБД быстрее находит нужные данные, при этом сокращается физическое число перемещений физических устройств считывания данных между блоками памяти. Проектируя индексы, необходимо помнить, что повальное использование индексов по принципу «чем больше – тем лучше» может затормозить выполнение запросов, оптимизатор запросов СУБД будет использовать первый индекс и, возможно, он не будет лучшим. Необходим здравый подход к созданию индексов.
Индексы необходимы, если:
— часто производится поиск в БД по определенному полю (полям) таблицы;
— часто выполняется операция объединения таблиц по значению поля (полям);
— часто выполняется операция сортировки по значениям поля (полей) в наборе данных, возвращаемых в результате запроса.
Не рекомендуется строить индексы по полям или группам полей, если:
— поля редко используются для выполнения операций поиска, объединения, сортировки;
— значения полей часто меняют свои значения;
— значения полей содержат небольшое число вариантных значений;
— значения полей имеют большие размеры;
— поля содержат большое количество пустых значений.
Для объявленных при создании таблиц первичного и уникальных ключей современные СУБД индекс создают автоматически. Некоторые СУБД, в частности InterBase, создают автоматически индексы и для объявленных внешних ключей. При выполнении запроса к БД, в условие поиска которого входит столбец таблицы, для которого создан индекс, поиск значений производится в первую очередь в индексе.
Различают следующие типы индексов:
— простые, строятся на основе только одного поля таблицы;
— составные – строятся по двум и более полям таблицы, при этом последовательность полей в составном индексе может быть не связана с последовательностью полей в таблице. Последовательность влияет на скорость поиска данных. Для создания оптимального составного индекса рекомендуется первым помещать поле, содержащее меньшее количество повторов, то есть содержащее наиболее ограничивающее значение, либо первым помещать поле, содержащее данные, которые наиболее часто задаются в условиях поиска;
— уникальные – используются дополнительно с целью поддержки целостности данных. Так, например, для создаваемой в среде СУБД FoxPro базы данных необходимо такие индексы строить для первичных и уникальных ключей, поскольку эта СУБД не поддерживает явно определение таких ключей.
При создании индексов следует поддерживать следующие рекомендации:
— нельзя создавать для таблицы несколько индексов, содержащих одинаковые, но расположенные в другом порядке поля, в случае необходимости индексы следует сокращать. Исключение составляют таблицы, разбивающие связь "многие_ко_многим";
— нельзя допускать, чтобы у нескольких индексов для одной и той же таблицы была одинаковая лидирующая часть.
Если проектировщиком приняты неудачные решения по индексированию, то в дальнейшем может значительно снизиться производительность системы вследствие излишней траты времени процессором на операции чтения, записи, ненужную оптимизацию; неэффективного использования дискового пространства.
Создание индекса может быть реализовано командой Create Index.
При многократном внесении и изменении данных в таблицах индексы, связанные с этой таблицей, могут быть разбалансированы, содержать неадекватный порядок следования записей. Поэтому периодически необходимо осуществлять улучшение производительности индекса, используя команды перестройки (деактивизации) индексов, например команду Alter Index.
Для оптимального использования индексов в конкретной СУБД необходимо пользоваться соответствующей технической документацией.
Создание БД
Перенос разработанной физической модели базы данных в среду конкретной выбранной СУБД называется процессом создания базы данных или её реализацией. Каждая конкретная инструментальная среда, каковой является система управления базами данных, требует особых знаний и навыков. Создание высокопроизводительной БД в выбранной среде потребует изучения соответствующей коммерческой технической документации. Рассмотрим общие подходы и технологии к процессу создания БД без особых подробностей их реализации.
В каждом конкретном случае создания БД средствами выбранной СУБД разработчик (администратор БД) должен уметь выбрать оптимальную стратегию размещения и хранения данных. Существует несколько показателей, которые могут быть использованы для оценки достигнутой эффективности:
— количество выполненных операций в БД (добавление, обновление, удаление, чтение строк таблиц) за заданный интервал времени;
— время ответа – временной промежуток, необходимый для выполнения определенного количества операций в БД;
— объем дискового пространства, необходимого для размещения файлов БД.
Ни один по отдельности из этих факторов не является самодостаточным, как правило, все усилия направлены на достижение оптимального баланса значений этих характеристик. После создания БД могут выполняться дополнительные настройки её конфигурации в процессе эксплуатации.
Основные шаги в ходе создания БД это: подготовка среды хранения, генерация схемы БД; загрузка и корректировка данных из старой БД; ввод и контроль данных в справочные таблицы.
Дата добавления: 2016-10-17; просмотров: 878;