Многочисленные усовершенствования СУБД способствуют автоматизации важных процедур

СУБД Database 11g, являющаяся основой архитектуры распределенных вычислений Oracle Grid, должна привлечь внимание администраторов баз данных благодаря наличию в ней улучшенных возможностей администрирования, восстановления информации и сжатия таблиц. Выпущенный в конце августа продукт Oracle позволяет производить тонкую настройку БД, не прибегая к методу проб и ошибок.

Я протестировал Database 11g в редакции Enterprise Edition для 32-разрядных x86-систем под управлением ОС Linux. По словам представителей компании, 64-разрядная версия для Linux, которая, по-видимому, будет наиболее востребована корпоративными пользователями, как и аналогичные версии для других популярных платформ, ожидается к концу года.

Oracle Database 11g поставляется по тем же расценкам, что и 10g. Например, Standard Edition One стоит $149 за именованного пользователя и $4995 в расчете на процессор, а Enterprise Edition — соответственно $800 за каждого пользователя или $40 000 на один процессор.

Фокус на автоматизации

После трех лет труда разработчиков Oracle Database 11g обзавелась массой новых и модернизированных функций, нацеленных на автоматизированное повышение производительности баз данных и скорости обработки запросов, а также на оптимизацию использования оперативной и дисковой памяти.

Один из примеров — инструмент анализа “что, если” под названием Database Replay. При тестировании я воспользовался этим средством для регистрации рабочей нагрузки реальной БД и последующего ее воспроизведения на тестовой системе.

Однако работа с Database Replay – вовсе не легкая прогулка: для достижения оптимальных результатов может понадобиться перезагрузка действующей базы данных. А в ходе диалога с мастером установки мне пришлось ответить на ряд строгих (но уместных) предупреждений, чтобы система была способна записать в специальный файл рабочую нагрузку, не прерывая своего функционирования.

Database 11g умеет трансформировать зарегистрированные графики нагрузки в так называемые Replay Files. А поскольку программа-мастер создала и необходимые файлы метаданных, это позволило мне легко “воспроизвести” запротоколированную рабочую нагрузку на тестируемой системе.

Отмечу, что испытания, проводимые на базе реальных рабочих нагрузок, являются одним из наиболее точных методов прогнозирования того, как изменения, внесенные в систему или приложение, могут повлиять на фактическую производительность.

На тот же круг задач нацелен и инструмент SPA (SQL Performance Analyzer), посредством которого администраторы баз данных смогут прогнозировать влияние изменений в системе на план исполнения SQL-команд и другие функции. Благодаря SPA можно предсказывать, как изменится производительность в случае обновления СУБД, уточнения настроек, модификации структуры БД, запуска сбора статистики и даже при внесении изменений в ОС или аппаратную платформу.

Я создал набор сценариев STS (SQL Tuning Set), в которых отражены информация о рабочей нагрузке, план исполнения заданий, имеющиеся связи и требования к сбору статистики.

Далее я спроектировал Guided Workflow, задав последовательность шагов по исполнению двух пробных SPA-тестов. Настроечные тесты включали набор SQL-операторов, статистику их исполнения, а также информацию о контексте.

Созданный мною STS-сценарий относился к модельной базе данных отдела кадров. После его прогона я установил «заплатку» и повторил настроечный тест. SPA подтвердил, что качество исполнения большинства SQL-команд повысилось, а производительность БД при этом осталась на том же уровне.

Еще один компонент Database 11g — SQL Tuning Advisor – умеет фиксировать информацию в процессе работы Guided Workflow и после ее анализа выдавать конкретные предложения по корректировке тех или иных SQL-операторов.

Новый модуль SQL Query Result Cache повышает производительность приложений путем кэширования результатов SQL-запросов и функций на языке PL/SQL в оперативной памяти. До тех пор пока объект БД остается неизменным, используются кэшированные результаты запроса. Реальный прирост производительности за счет кэширования зависит от степени статичности обрабатываемых данных. Однако в целом применение Result Cache наиболее эффективно при наличии в приложении одних и тех же часто исполняемых SQL-запросов и PL/SQL-функций.

Расширенная статистика

Расширенная (или многоколоночная) статистика — новая функция Oracle Database 11g — помогает находить зависимость между двумя или более столбцами таблицы. Я использовал эту возможность, чтобы сгенерировать статистическую информацию, отображающую связь между клиентами, штатами и странами (все нужные данные хранились в одной таблице).

Оптимизатор CBO (Cost-Based Optimizer) может использовать эту статистику для выявления взаимосвязей между несколькими колонками таблицы.

В ходе тестов я убедился, что CBO правильно рассчитывает селективность одноколоночных предикатов, даже если к полям применяется та или иная функция, например UPPER (lname). В итоге CBO смог определить уровень селективности и кардинальное число для каждого поля и задействовать расширенную статистику для выявления корреляции между ними.

Протокол истории

В тестах я предписал Database 11g отслеживать и сохранять все транзакционные изменения в отдельных записях и убедился в том, что новая СУБД действительно позволяет фиксировать сопутствующую информацию на время жизни записи.

Однако поскольку для сохранения сведений об изменениях нужна дополнительная дисковая память, администраторам БД следует позаботиться о том, чтобы такие мгновенные снимки делались только для тех записей, которые реально нуждаются в тщательном мониторинге.

Конфигурируя свои тесты, я задал квоту памяти в 10 Мб и период хранения транзакционного архива – один год. В ходе испытаний я изменял данные, например размеры зарплат различных сотрудников, а затем использовал ретроспективный архив для восстановления тех значений, которые были скорректированы по ошибке.

Эта функция, несомненно, будет полезна для анализа информации в ходе судебных расследований. Общий объем сопутствующих подобным изменениям метаданных, создаваемых и хранимых в Database 11g, столь велик, что подделка записей или очистка следов изменений кем-то из сотрудников организации практически невозможны. Чтобы тайно и бесследно удалить улики, потенциально содержащиеся в Database 11g, необходимо проявить выдающуюся настойчивость и усердие.

Усиленная безопасность

Oracle существенно повысила безопасность Database 11g. Чтобы засекретить дисковые данные, я воспользовался функцией Transparent Database Encryption. Криптозащита, предоставляемая Web-модулем Enterprise Manager, позволила мне сделать невидимыми отдельные поля. Тестирование показало, что работа с зашифрованными данными — у меня это были вымышленные кредитные лимиты — не вызывает особого замедления функционирования СУБД.

В целях соблюдения регулятивных норм продукт использует довольно усложненную процедуру сохранения ключей и управления ими. В рамках каждой таблицы с шифруемыми столбцами действует один ключ, который, в свою очередь, шифруется главным ключом БД и хранится в словаре данных вместе с таблицей. Ни один из ключей не хранится в незашифрованном виде, причем главный ключ базы данных размещается в модуле безопасности, функционирующем вне самой БД.

Сисадминам и специалистам, ответственным за ИТ-безопасность, важно усвоить, что главный ключ базы данных должен быть защищен, но в то же время его местоположение не следует делать абсолютным секретом, иначе он будет недоступен, когда вдруг возникнет необходимость в дешифрации информации. Я акцентирую на этом внимание потому, что, поскольку главные ключи баз данных обычно периодически обновляются (или должны обновляться), администраторам БД следует помнить, что будущему ИТ-персоналу доступ к ключам и данным когда-нибудь все-таки потребуется.

Oracle улучшила в Database 11g средства управления и мониторинга Enterprise Manager Database Control, усилив безопасность и обеспечив генерацию более детальных отчетов. Enterprise Manager, впервые появившийся в Oracle Database 10g, имеет удобный интерфейс с закладками, показывающий хронологию рабочей нагрузки на СУБД, предупреждающие сообщения, конфигурацию хост-системы, последовательность обновлений ПО и содержимое пространства таблиц, и служит исходной точкой для выполнения большинства административных задач.

Экономия дисковой памяти

Oracle озабочена более оптимальным использованием ресурсов системы хранения. В Database 11g с этой целью активно применяется сжатие данных, сокращающее потребность в дисковом пространстве.

В ходе тестов я создал две одинаковые таблицы и одну из них сжал, чтобы оценить разницу в размерах. Я также сравнил время, необходимое для доступа к сжатым и несжатым данным. Результаты оказались весьма приемлемыми, но я все-таки собираюсь продолжить свои эксперименты, чтобы понять, какие данные лучше всего подходят для сжатия.

Таблицы, использованные для проверки, содержали чуть более 900 тыс. записей о продажах. Несжатая таблица заняла примерно 36 Мб, а сжатая — 19 Мб, т. е. несколько больше половины объема несжатых данных. Хотя степень компрессии составила 47%, время доступа для выполнения операций со сжатой таблицей возросло только на 1—2%.

С техническим директором eWeek Labs Камероном Стардевантом можно связаться по адресу: cameron.sturdevant@ziffdavisenterprise.com.

Что нового в 11g

Oracle Database 11g содержит сотни новых функций и усовершенствований.

  • SPA. Оценивает последствия корректировки плана исполнения SQL-оператора, что существенно экономит время администраторов БД, затрачиваемое на выявление и исправление операторов, ставших неэффективными из-за изменений в системе.
  • Database replay. Помогает работать со SPA и позволяет администраторам БД “проигрывать” реальные рабочие нагрузки в тестовой среде.
  • Сжатие табличных данных. Экономит дисковое пространство, занимаемое данными, с минимальным ущербом для производительности; новая техника сжатия будет способствовать переходу с жестких дисков на твердотельные накопители.
  • Ретроспективный архив данных. Отслеживает и сохраняет историю всех транзакционных изменений конкретной таблицы на протяжении ее жизненного цикла.
  • Онлайновое обновление ПО. Под этим понимается не загрузка обновлений из онлайнового источника, а их установка на работающую СУБД; эту функцию можно сравнить с заменой деталей на мчащемся по шоссе автомобиле.
  • SQL Access Advisor. Эта утилита выдает теперь рекомендации и по секционированию индексов, представлений и таблиц.