Назад к вопросам
Aston
Middle
8
Расскажите про партиционирование в Oracle: зачем применяется и какие виды бывают?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Партиционирование в Oracle — это метод разделения больших таблиц или индексов на более мелкие, управляемые части (партиции), которые физически хранятся отдельно, но логически объединены в одну структуру.
Зачем применяется:
- Улучшение производительности запросов за счёт ограничения сканирования данных только нужных партиций.
- Упрощение управления большими объёмами данных (например, архивирование или удаление старых данных по партициям).
- Повышение доступности и параллелизма при обработке данных.
Основные виды партиционирования в Oracle:
- Range Partitioning (Диапазонное): данные распределяются по партициям на основе диапазонов значений (например, даты).
- List Partitioning (Списковое): данные распределяются по спискам значений (например, по регионам).
- Hash Partitioning (Хеширование): данные распределяются по партициям на основе хеш-функции от значения ключа, что обеспечивает равномерное распределение.
- Composite Partitioning (Составное): комбинация нескольких методов, например, сначала Range, затем Hash внутри каждой Range-партиции.
Пример создания таблицы с диапазонным партиционированием по дате:
CREATE TABLE sales (
sale_id NUMBER,
sale_date DATE,
amount NUMBER
)
PARTITION BY RANGE (sale_date) (
PARTITION p_2023_q1 VALUES LESS THAN (TO_DATE('01-APR-2023','DD-MON-YYYY')),
PARTITION p_2023_q2 VALUES LESS THAN (TO_DATE('01-JUL-2023','DD-MON-YYYY')),
PARTITION p_2023_q3 VALUES LESS THAN (TO_DATE('01-OCT-2023','DD-MON-YYYY')),
PARTITION p_2023_q4 VALUES LESS THAN (TO_DATE('01-JAN-2024','DD-MON-YYYY'))
);