Экстенты
Экстент – это элемент области хранения, который представлен в виде физического файла на дисковом устройстве. В областях хранения второго типа каждый экстент состоит из кластеров. Для задания размера, типа и места хранения экстентов используется структурный файл базы данных (.st).
Использование экстентов позволяет:
- распределить файлы одной области хранения между несколькими дисками или файловыми системами и обеспечить распределение операций ввода-вывода и уменьшение дисковой конкуренции;
- вынести интенсивно используемые таблицы и индексы на отдельное быстрое дисковое устройство.
Существует два основных типа экстентов – фиксированного и переменного размера.
Использование фиксированных экстентов позволяет контролировать выделение дискового пространства для каждого экстента. Поскольку пространство для хранения данных в таком экстенте заранее выделено и отформатировано, то это улучшает производительность базы данных. В этом случае администратор должен убедиться в том, что было выделено достаточно дискового пространства в таких экстентах для хранения всех данных.
Использование переменных экстентов обеспечивает динамическое выделение пространства по мере роста объёма данных. Такой подход обеспечивает более простое управление экстентами, так как администратору нет необходимости в регулярном мониторинге заполнения экстентов. В тоже время использование переменных экстентов снижает производительность из-за того, что по мере необходимости СУБД должна выделять и форматировать новые порции дискового пространства. Но с тех пор, как появились области хранения второго типа, это ограничение стало незначительным, так как дисковое пространство в экстентах областей второго типа выделяется целым кластером из блоков базы данных, а не отдельными блоками как это происходит в областях первого типа. По умолчанию размер переменного экстента будет расти до тех пор, пока это позволяют ограничения файловой системы или пока не будет использовано все доступное пространство на диске. Администратор может контролировать размер переменного экстента установив соответствующий параметр в структурном файле с указанием максимально допустимого размера для конкретного экстента. Это не означает что пространство для переменного экстента будет заранее выделено и отформатировано – переменный экстент будет расти до заданного размера.
При создании экстентов придерживайтесь следующих рекомендаций:
- Размещайте BI-экстенты на отдельном дисковом устройстве, который выделен только для них. Проблемы при записи или чтении журнала BI отрицательно сказываются на производительности БД.
- Размещайте AI-экстенты на отдельном дисковом устройстве. Так же, как и в случае с файлами BI – это обеспечит наилучшую производительность БД. Кроме того, такое расположение увеличит шансы на возможность восстановления базы данных после сбоя. Если одно из дисковых устройств выйдет из строя, то администратор сможет использовать последнюю резервную копию и уцелевшие AI-экстенты для восстановления всех транзакций, вплоть до точки сбоя.
- Используйте несколько экстентов большого размера вместо множества небольших экстентов для каждой области хранения. СУБД более эффективно работает с несколькими большими экстентами, чем с множеством маленьких. В результате производительность улучшается.
- Включите в базе данных поддержку больших файлов. По умолчанию экстент может расти максимум до 2 ГБ. Но с поддержкой больших файлов максимальный размер экстента равен 1 ТБ. Примечание: в OpenEdge серии 12.x при наличии лицензии Enterprise / Advanced Enterprise RDBMS поддержка больших файлов включается автоматически при создании базы данных.
- Если в области хранения используются экстенты фиксированного размера, то обязательно последний экстент создавайте переменным. Это позволит предотвратить аварийный останов базы данных из-за того, что свободные кластеры в отведённой области хранения закончились.