Базы данных Oracle - статьи

         

Обработка Exadata Smart Scan


Технология Smart Scan переносит сведения о базе данных как можно ближе к аппаратным средствам.

При использовании традиционных неготовых к работе с iDB устройств хранения все сведения о базе данных постоянно хранятся на сервере вместе с программным обеспечением базы данных. Для иллюстрации того, как в этой архитектуре выполняется обработка запросов SQL, ниже показано как сканируется таблица.


Рисунок 5: Традиционная модель ввода-вывода и обработки SQL-запросов для базы данных

  1. Клиент выдает оператор SELECT с предикатом фильтрации и возврата только представляющих интерес строк.
  2. Ядро базы данных представляет этот запрос в виде файлов и экстентов, содержащих просматриваемую таблицу.
  3. Ядро базы данных выдает команды ввода-вывода для чтения блоков.
  4. Все блоки таблицы, к которой был сделан запрос, считываются в память.
  5. Затем выполняется обработка SQL-запросов на «сырых» блоках для поиска строк, которые удовлетворяют предикату.
  6. Наконец, найденные строки передаются клиенту.

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

Интеграция функциональности базы данных на уровне среды хранения стека базы данных позволяет намного более эффективно выполнять запросы и другие операции базы данных. Реализация функциональных возможностей базы данных так близко к аппаратным средствам, насколько это возможно (в случае Exadata – на уровне дисков), может в значительной степени ускорить выполнений операций базы данных и увеличить пропускную способность системы.

При использовании среды хранения Exadata операции с базой данных обрабатываются намного более эффективно. Запросы, выполняющие сканирование таблицы, могут быть обработаны непосредственно внутри комплекса Exadata с использованием только необходимого подмножества данных, возвращаемых на сервер базы данных. Фильтрация строк, фильтрация столбцов и некоторая обработка соединений (наряду с другими функциями) выполняются в ячейках хранения Exadata. Когда это происходит, на сервер базы данных возвращаются только релевантные и необходимые данные.




Exadata Smart Scan возвращает только релевантные строки и столбцы запроса, позволяя лучше использовать полосу пропускания средств ввода-вывода и увеличивать производительность базы данных.


На приведенном ниже рисунке 6 показано, как в среде хранения Exadata работает сканирование таблицы.



Рисунок 6: Разгрузка обработки при использовании Smart Scan
  1. Клиент выдает оператор SELECT с предикатом для фильтрации и возврата только строк, представляющих интерес.
  2. Ядро базы данных определяет, что среда хранения Exadata доступна, создает команду iDB, представляющую клиентскую команду SQL, и посылает ее в среду хранения Exadata.
  3. Компонент CELLSRV программного обеспечения Exadata просматривает блоки данных, чтобы определить те строки и столбцы, которые удовлетворяют полученному SQL-оператору.
  4. В память считываются только строки и требуемые столбцы, удовлетворяющие предикату.
  5. Ядро базы данных объединяет результирующие наборы из всех ячеек Exadata.
  6. И, наконец, строки возвращаются клиенту.


Сканирования Smart Scan прозрачны для приложения, – ни для какого приложения или SQL-оператора не требуется никаких изменений. Возвращенные данные являются полностью согласованными и транзакционными и строго соответствуют функциональности и поведению согласованного чтения (consistent read) для Oracle Database. Если в процессе такого «разумного сканирования» ячейка выходит из строя, незаконченные части Smart Scan прозрачно перенаправляются для завершения в другую ячейку. Сканирования Smart Scan должным образом обрабатывают сложные внутренние механизмы Oracle Database, включая: незафиксированные данные и заблокированные строки, сцепленные (chained) строки, компрессированные таблицы, обработку национального языка, операции с датами, поиски с помощью регулярных выражений, материализованные представления и секционированные таблицы. А SQL EXPLAIN PLAN показывает, когда используются «разумные сканирования» Exadata.

База данных Oracle и Exadata совместно выполняют различные SQL-операторы. Перенос обработки SQL-операторов с сервера базы данных приводит к сокращению числа циклов центрального процессора на сервере и значительно сокращает потребление полосы пропускания, которая вследствие такого сокращения становится доступной для лучшего обслуживания других запросов. SQL-операции выполняются быстрее, и одновременно может выполняться большее количество таких операций. Это происходит благодаря уменьшению конкуренции за полосу пропускания средств ввода-вывода. А сейчас мы посмотрим на различные SQL-операции, которые получают дополнительные преимущества, благодаря использованию Exadata.


Содержание раздела