Sobes.tech
Назад к вопросам
Middle
8

Расскажите про партиционирование в Oracle: зачем применяется и какие виды бывают?

Компании, где спрашивали
AstonAston

Ответ от нейросети

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'))
);