Введение

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

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

Настройка ввода/вывода

Исследуется аппаратная и программная конфигурация подсистем дисков: уровни и конфигурация RAID, распределение размеров блоков и полос, а также конфигурация дисков, контроллеров, шкафов хранения и внешних систем хранения, таких как SAN. Журналы транзакций и временные пространства интенсивно используют ввод/вывод и влияют на производительность всех пользователей базы данных. Их правильное размещение имеет решающее значение. Часто объединяемые таблицы и индексы размещаются таким образом, чтобы при запросе из файлового хранилища они могли быть одновременно извлечены параллельно с разных дисков. Часто используемые таблицы и индексы размещаются на отдельных дисках для балансировки нагрузки ввода/вывода и предотвращения образования очередей чтения.

Пользователи СУБД и эксперты по системам управления данными

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

Автоматическая настройка DB

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

Содержание базы данных

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