Роль процесса оптимизации в работе систем баз данных | Статья в журнале «Молодой ученый»

Библиографическое описание:

Иванов К. К., Ефремов А. А., Ващенко И. А. Роль процесса оптимизации в работе систем баз данных // Молодой ученый. — 2016. — №28. — С. 15-16. — URL https://moluch.ru/archive/132/36802/ (дата обращения: 14.12.2018).



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

Оптимизация является одной из сильных сторон реляционных баз данных [1], так как производится автоматически на довольно высоком семантическом уровне. Здесь оптимизатор (программа, выполняющая оптимизацию) представляет собой некий аналог искусственного интеллекта, а именно экспертной системы [2]. Это обусловлено тем, что в оптимизаторе «реализованы знания и опыт лучших из лучших программистов», благодаря чему этими знаниями и опытом могут воспользоваться менее квалифицированные специалисты. В противовес вышесказанному в нереляционных базах данных возможна лишь ручная оптимизация, при которой пользователь сам определяет, последовательность каких низкоуровневых процедур будет соответствовать определенному запросу. Данный подход является большим минусом подобных систем баз данных, так как любое неверно принятое пользователем решение не может быть исправлено системой [1].

Для того, чтобы наяву убедиться в том, что автоматическая оптимизация жизненно необходима системам баз данных, рассмотрим следующий пример. Пусть нам необходимо выбрать номера групп, в которых обучается хотя бы один отличник за все время обучения. Всего есть 100 групп и 5000 студентов, причем только 50 из них являются отличниками. Информация о группах хранится в переменной отношения A, а информация о студентах (для каждого студента проставлен его средний балл по итогам всех аттестаций за все время обучения) — в переменной отношения B, причем первичный ключ переменной отношения A является внешним по отношению к переменной отношения B. Имеется два возможных варианта выполнения поставленной задачи:

  1. При использовании первого из них сначала произойдет соединение переменных отношения A и B по внешнему ключу, для выполнения которого потребуется найти для каждой из 5000 записей о студентах одну соответствующую запись из ста об учебных группах. В результате соединения будет получена новая переменная отношения (допустим, C) из 5000 соединенных кортежей, для хранения которой, вполне возможно, может даже не хватить места в оперативной памяти, из-за чего придется записать эту переменную отношения C на диск. Затем будет проведена выборка тех кортежей, в которых атрибут со значением среднего балла студента за все время обучения будет равен 5, но для проведения выборки потребуется опять загрузить переменную отношения C в оперативную память. Так как отличников всего 50, то новая полученная переменная отношения сможет поместиться в оперативной памяти. После этого будет проведена последняя операция, в ходе которого будет сформирован список групп, в которой обучаются эти отличники.
  2. При использовании второго из них сначала будет проведена операция выборки, в результате которой будет сформирована переменная отношения, содержащая лишь записи о 50 студентах-отличниках. Затем эта переменная отношения будет соединена с переменной отношения, хранящей сведения об учебных группах, по внешнему ключу, причем новая переменная отношения также будет содержать 50 кортежей. Последний шаг с формированием списка групп полностью идентичен последнему шагу из первого варианта.

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

Тем не менее, варианты выполнения не всегда настолько сильно разнятся, что выбор можно сделать практически моментально. Поэтому для принятия правильного решения оптимизатор использует большой набор статистических показателей базы данных [1]. Обычно, это набор представляет собой следующие сведения:

  1. Для каждой переменной отношения:

– Кардинальность — количество кортежей [3];

– Количество страниц, занятых переменной отношения;

– Доля пространства, занимаемого переменной отношения;

  1. Для каждого атрибута каждой переменной отношения:

– Количество различных значений атрибута;

– Второе наибольшее и второе наименьшие значения атрибута;

– Несколько наиболее часто встречаемых значений атрибута с их частотностью при условии, что это индексированный атрибут;

  1. Для каждого индекса:

– Индикатор кластеризации (совпадает ли логический порядок значений ключа с порядком физического размещения);

– Количество листовых страниц в индексе;

– Количество уровней в индексе.

Именно эти данные помогают оптимизатору принять правильное решение о выполнении того или иного запроса. Но каков в целом алгоритм его действий?

Оптимизация любого запроса затрагивает следующие четыре стадии [1]:

  1. Преобразование запроса во внутреннюю форму. На данной стадии запрос переводится в формат, удобный для машинной обработки, для чего удаляются различные внешние конструкции. Данная стадия является подготовительной — в ходе нее проводятся работы, необходимые на дальнейших этапах.
  2. Преобразование запроса в каноническую форму. Оптимизация запроса на этом этапе все еще проходит в отрыве от данных и путей доступа к ним. Здесь происходит замена запроса эквивалентной ему канонической формой, представляющий собой некоторый более эффективный запрос. Это происходит из-за того, что любой запрос может быть сформирован как минимум десятком способов, многие из которых только из-за своей записи будут серьезно тормозить работу. Для выполнения этой стадии оптимизатор использует четко определенные законы преобразования.
  3. Выбор потенциальных низкоуровневых процедур. На этой стадии во внимание принимаются все имеющиеся статистические показатели базы данных. Так, для каждого запроса, уже представленного в канонической форме, определяется серия операций более низкого уровня, для каждой из которых, в свою очередь, имеется набор процедур реализации еще более низкого уровня. С каждой такой процедурой реализации связана параметризованная формула стоимости, с помощью которой можно определить затраты, связанные с выполнением данной процедуры. В итоге происходит так называемый выбор пути доступа, в ходе которого для каждой операции в запросе подбирается несколько вариантов процедур реализации.
  4. Генерация различных планов вычисления запроса и выбор плана с минимальными затратами. На этой стадии на основании выбора пути доступа формируются потенциальные планы запросы, из которых выбирается тот, суммарная стоимость процедур реализации которого является наименьшей.

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

Литература:

  1. Дейт, К.Дж. Введение в системы баз данных, 8-е издание: Пер. с англ. / К.Дж. Дейт. — М.: Издательский дом «Вильямс», 2008. — 1328 с.: ил. — Парал. тит. англ.
  2. Гаврилова, Т. А. Базы знаний интеллектуальных систем / Т. А. Гаврилова, В. Ф. Хорошевский. — СПб.: Питер, 2001. — 384 с.: ил.
  3. Краморенко, Н. В. Базы данных. / Н. В. Краморенко. — Дальневосточный государственный университет, Тихоокеанский институт дистанционного образования и технологий. Режим доступа: https://imcs.dvfu.ru/struc/kkt/inform/studies/BD/dvgu085.pdf (дата обращения: 10.11.2016).
Основные термины (генерируются автоматически): отношение, переменная, время обучения, каноническая форма, оперативная память, правильное решение, последний шаг, автоматическая оптимизация, внешний ключ, реляционная база данных.


Похожие статьи

Технология ADO и средства доступа к реляционным базам данных

Основные термины (генерируются автоматически): ADO, SQL, источник данных, баз данных, данные, таблица, база данных, соединение, оперативная память, реляционная база данных.

Нестрогое сопоставление записей реляционных баз данных...

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

Реализация хранилищ данных в системах поддержки принятия...

Такая информация обычно хранится в оперативных базах данных систем оперативной обработки транзакций (online transaction

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

Разработка реляционной базы данных для автоматизации...

Основные термины (генерируются автоматически): SQL, Сведение, кадровая служба, реляционная база данных, кадровая служба предприятия, кадровая деятельность предприятий, необходимая отчетность, медицинское обследование, главная кнопочная форма...

Оптимизация алгоритма выравнивания биологических...

Аналогичная идея оптимизации обращения к памяти была представлена в [11], однако достаточно простого решения проблемы не было предложено.

Основное применение нумераций — построение эффективной модели представления данных в памяти [13].

Анализ поисковых алгоритмов при решении задач идентификации...

В статье рассмотрены проблемы идентификации объектов в слабоструктурированной БД, представлены результаты сравнительного анализа применяющихся для их решения алгоритмов поиска. Ключевые слова. База данных; расстояние Хемминга; сравнение строк...

Принципы разработки и создания структуры базы данных

В последнее время быстрыми темпами развиваются наука и техника, которые вызвали

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

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

Сравнение производительности ORM-библиотек как критерия...

Основные термины (генерируются автоматически): ORM, баз данных, данные, результат тестирования, CODE, реляционная база данных, отдельный проект, какое время, CRUD, реляционная форма.

Оптимизация кэширования информации: задачи и аналитическое...

Этап оптимизации размеров кэш-блоков. Здесь рассмотрим сравнительный анализ различных стратегий кэширования данных.

Основные термины (генерируются автоматически) : оперативная память, файл, объем кэша, Сравнительный анализ, внешний носитель...

Технология ADO и средства доступа к реляционным базам данных

Основные термины (генерируются автоматически): ADO, SQL, источник данных, баз данных, данные, таблица, база данных, соединение, оперативная память, реляционная база данных.

Нестрогое сопоставление записей реляционных баз данных...

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

Реализация хранилищ данных в системах поддержки принятия...

Такая информация обычно хранится в оперативных базах данных систем оперативной обработки транзакций (online transaction

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

Разработка реляционной базы данных для автоматизации...

Основные термины (генерируются автоматически): SQL, Сведение, кадровая служба, реляционная база данных, кадровая служба предприятия, кадровая деятельность предприятий, необходимая отчетность, медицинское обследование, главная кнопочная форма...

Оптимизация алгоритма выравнивания биологических...

Аналогичная идея оптимизации обращения к памяти была представлена в [11], однако достаточно простого решения проблемы не было предложено.

Основное применение нумераций — построение эффективной модели представления данных в памяти [13].

Анализ поисковых алгоритмов при решении задач идентификации...

В статье рассмотрены проблемы идентификации объектов в слабоструктурированной БД, представлены результаты сравнительного анализа применяющихся для их решения алгоритмов поиска. Ключевые слова. База данных; расстояние Хемминга; сравнение строк...

Принципы разработки и создания структуры базы данных

В последнее время быстрыми темпами развиваются наука и техника, которые вызвали

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

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

Сравнение производительности ORM-библиотек как критерия...

Основные термины (генерируются автоматически): ORM, баз данных, данные, результат тестирования, CODE, реляционная база данных, отдельный проект, какое время, CRUD, реляционная форма.

Оптимизация кэширования информации: задачи и аналитическое...

Этап оптимизации размеров кэш-блоков. Здесь рассмотрим сравнительный анализ различных стратегий кэширования данных.

Основные термины (генерируются автоматически) : оперативная память, файл, объем кэша, Сравнительный анализ, внешний носитель...

Обсуждение

Социальные комментарии Cackle

Похожие статьи

Технология ADO и средства доступа к реляционным базам данных

Основные термины (генерируются автоматически): ADO, SQL, источник данных, баз данных, данные, таблица, база данных, соединение, оперативная память, реляционная база данных.

Нестрогое сопоставление записей реляционных баз данных...

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

Реализация хранилищ данных в системах поддержки принятия...

Такая информация обычно хранится в оперативных базах данных систем оперативной обработки транзакций (online transaction

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

Разработка реляционной базы данных для автоматизации...

Основные термины (генерируются автоматически): SQL, Сведение, кадровая служба, реляционная база данных, кадровая служба предприятия, кадровая деятельность предприятий, необходимая отчетность, медицинское обследование, главная кнопочная форма...

Оптимизация алгоритма выравнивания биологических...

Аналогичная идея оптимизации обращения к памяти была представлена в [11], однако достаточно простого решения проблемы не было предложено.

Основное применение нумераций — построение эффективной модели представления данных в памяти [13].

Анализ поисковых алгоритмов при решении задач идентификации...

В статье рассмотрены проблемы идентификации объектов в слабоструктурированной БД, представлены результаты сравнительного анализа применяющихся для их решения алгоритмов поиска. Ключевые слова. База данных; расстояние Хемминга; сравнение строк...

Принципы разработки и создания структуры базы данных

В последнее время быстрыми темпами развиваются наука и техника, которые вызвали

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

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

Сравнение производительности ORM-библиотек как критерия...

Основные термины (генерируются автоматически): ORM, баз данных, данные, результат тестирования, CODE, реляционная база данных, отдельный проект, какое время, CRUD, реляционная форма.

Оптимизация кэширования информации: задачи и аналитическое...

Этап оптимизации размеров кэш-блоков. Здесь рассмотрим сравнительный анализ различных стратегий кэширования данных.

Основные термины (генерируются автоматически) : оперативная память, файл, объем кэша, Сравнительный анализ, внешний носитель...

Технология ADO и средства доступа к реляционным базам данных

Основные термины (генерируются автоматически): ADO, SQL, источник данных, баз данных, данные, таблица, база данных, соединение, оперативная память, реляционная база данных.

Нестрогое сопоставление записей реляционных баз данных...

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

Реализация хранилищ данных в системах поддержки принятия...

Такая информация обычно хранится в оперативных базах данных систем оперативной обработки транзакций (online transaction

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

Разработка реляционной базы данных для автоматизации...

Основные термины (генерируются автоматически): SQL, Сведение, кадровая служба, реляционная база данных, кадровая служба предприятия, кадровая деятельность предприятий, необходимая отчетность, медицинское обследование, главная кнопочная форма...

Оптимизация алгоритма выравнивания биологических...

Аналогичная идея оптимизации обращения к памяти была представлена в [11], однако достаточно простого решения проблемы не было предложено.

Основное применение нумераций — построение эффективной модели представления данных в памяти [13].

Анализ поисковых алгоритмов при решении задач идентификации...

В статье рассмотрены проблемы идентификации объектов в слабоструктурированной БД, представлены результаты сравнительного анализа применяющихся для их решения алгоритмов поиска. Ключевые слова. База данных; расстояние Хемминга; сравнение строк...

Принципы разработки и создания структуры базы данных

В последнее время быстрыми темпами развиваются наука и техника, которые вызвали

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

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

Сравнение производительности ORM-библиотек как критерия...

Основные термины (генерируются автоматически): ORM, баз данных, данные, результат тестирования, CODE, реляционная база данных, отдельный проект, какое время, CRUD, реляционная форма.

Оптимизация кэширования информации: задачи и аналитическое...

Этап оптимизации размеров кэш-блоков. Здесь рассмотрим сравнительный анализ различных стратегий кэширования данных.

Основные термины (генерируются автоматически) : оперативная память, файл, объем кэша, Сравнительный анализ, внешний носитель...

Задать вопрос