Открыть сервис

Materialized Query Tables

Materialized Query Tables (MQT) — это объекты базы данных, представляющие собой предварительно вычисленные и сохранённые на диске результаты выполнения запроса (обычно содержащего операции соединения, агрегации и фильтрации). MQT относятся к классу материализованных представлений (materialized views) и используются в системах управления базами данных (СУБД) для ускорения выполнения сложных аналитических запросов за счёт замены повторного вычисления дорогостоящих операций чтением готовых данных.

Определение и сущность

MQT представляют собой физические таблицы, содержимое которых определяется запросом, указанным при их создании. В отличие от обычных представлений (views), которые являются виртуальными и вычисляются каждый раз при обращении, MQT хранят данные на диске. Это позволяет значительно сократить время выполнения запросов, особенно в системах поддержки принятия решений (DSS) и хранилищах данных, где типичны запросы с агрегацией по большим объёмам данных.

Ключевая особенность MQT — способность СУБД автоматически (прозрачно для пользователя) перенаправлять запросы на чтение данных из MQT, если оптимизатор определяет, что это эквивалентно исходному запросу и выгоднее по производительности. Этот механизм называется «сопоставлением запросов» (query matching) или «замещением запросов» (query rewrite).

История

Концепция материализованных представлений была впервые предложена в академических исследованиях в 1980-х годах, однако практическая реализация в коммерческих СУБД началась в 1990-х. Одним из первых крупных внедрений стала СУБД DB2 Universal Database компании IBM, где в версии 7 (1999 год) была представлена технология под названием Materialized Query Tables.

В дальнейшем аналогичные механизмы были реализованы в других СУБД, таких как Oracle (с 9i, 2001 год — материализованные представления с возможностью перезаписи запросов), Microsoft SQL Server (с 2008 года — индексированные представления, indexed views), PostgreSQL (с версии 9.3, 2013 год — материализованные представления). В современных СУБД, таких как Amazon Redshift, Google BigQuery, Snowflake, также существуют аналогичные сущности (например, материализованные представления в Snowflake).

Классификация

MQT можно классифицировать по нескольким признакам:

По способу обновления (refresh)

По типу запроса

По прозрачности для пользователя

Устройство и характеристики

MQT создаются с помощью оператора CREATE TABLE (или его аналога) с указанием запроса-источника. В разных СУБД синтаксис различается.

Пример для DB2 (упрощённо): ``sql CREATE TABLE sales_summary AS (SELECT product_id, region, SUM(amount) AS total_sales FROM sales GROUP BY product_id, region) DATA INITIALLY DEFERRED REFRESH DEFERRED; ``

Основные характеристики MQT:

Применение

MQT широко применяются в следующих областях:

Примеры

Пример 1: Ускорение отчёта по продажам

Базовый запрос: ``sql SELECT region, SUM(amount) AS total_sales FROM sales GROUP BY region; ``

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

Пример 2: Ускорение соединения таблиц

Базовый запрос: ``sql SELECT c.customer_name, o.order_date, o.total FROM customers c JOIN orders o ON c.customer_id = o.customer_id WHERE c.country = 'Россия'; ``

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

Критика и ограничения

Источники

  1. Elmasri, R., Navathe, S. B. Fundamentals of Database Systems. 7th ed. — Pearson, 2016. — Глава 25: Materialized Views.
  2. IBM Knowledge Center. Materialized Query Tables (MQTs). — IBM Corporation, 2023.
  3. Oracle Database Online Documentation. Materialized Views. — Oracle Corporation, 2023.
  4. Microsoft SQL Server Documentation. Indexed Views. — Microsoft Corporation, 2023.
  5. PostgreSQL Documentation. Materialized Views. — The PostgreSQL Global Development Group, 2023.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →