Axoft Продукты и решения Для партнеров Обучение Лицензирование Для разработчиков

Преимущества СУБД Oracle

Ключевые преимущества СУБД Oracle 11g:

Oracle – лидер среди поставщиков встроенных СУБД

Ведущая аналитическая фирма IDC в своем обзоре «Поставщики встроенных СУБД в 2007» назвала компанию Oracle ведущим поставщиком с долей рынка в 26.3%. IDC определяет встроенные СУБД как те, которые проданы независимым поставщикам программного или аппаратного обеспечения и затем используются как компоненты внутри более крупных программных или аппаратных продуктов, разрабатываемых компанией-партнером.

Эти технологии являются уникальными, реализованными только в СУБД Oracle.

RAC

Технология Real Application Cluster, появившаяся в 9-й версии СУБД Oracle, позволяет объединять сервера, обслуживающие СУБД в одну <большую базу данных>, что позволяет достичь двух ключевых целей:

  1. Повышение производительности системы в целом путем добавления в кластер нового оборудования, без замены оборудования на более мощное. Производительность системы повышается пропорционально мощности подключенного узла. Следствием является сохранение инвестиций в оборудование, часто довольно существенных.
  2. Повышение отказоустойчивости СУБД: при выходе из строя или плановом выключении одного из серверов, входящих в кластер, СУБД полностью сохраняет свою работоспособность.

Real Application ClusterReal Application Cluster

Похожие технологии реализованы в Microsoft SQL Server 2008, но имеется одно существенное отличие: Microsoft Application Cluster позволяет повысить отказоустойчивость системы в целом, но без влияния на производительность.

Таким образом, использование RAC позволяет значительно повысить производительность системы, которая дошла до своего <физического потолка>, с сохранением средств, потраченных на это оборудование, и повысить отказоустойчивость системы. Как следствие – надежность и экономия.

RAT

Технология Real Application Testing позволяет значительно снизить затраты на проведение плановых изменений в конфигурации существующего программного или аппаратного обеспечения.

Real Application Testing

Суть технологии RAT заключается в воспроизведении нагрузки на тестовой базе данных в точном соответствии с нагрузкой на рабочем сервере.

Технология RAT

Active Data Guard

Эта технология позволяет создать резервный сервер основной базы данных с применением всех изменений, сделанных на основном сервере. Получается система, где работают как минимум два сервера: основной и резервный. В случае выхода из строя или плановой остановки основного сервера в работу автоматически вступает резервный сервер, и все пользователи автоматически переключаются и продолжают работу на резервном сервере. Технология проста в реализации и настройке и не требует больших затрат на развертывание и оборудование. Физически резервный сервер может находиться в другом помещении, здании или даже городе. Все, что требуется, – это обычное сетевое соединение между двумя серверами.

Можно использовать несколько резервных серверов для одного рабочего сервера.

Active Data Guard

Какие преимущества предоставляет использование этой технологии ?

  • Во-первых, очевидное – надежность. Живучесть и отказоустойчивость базы данных повышается на порядок.
  • Во-вторых, разгрузка рабочего сервера от резервного копирования, которое можно выполнять на standby (резервном) сервере, и разгрузка от отчетов и прочих операций <только на чтение>, которые также можно выполнять на резервном сервере.
  • В-третьих, плановое выключение резервного сервера, например, для обновлений, не затронет работу пользователей.

Похожие технологии реализованы и в DB2 и в MS SQL Server, но Oracle Data Guard выгодно отличается простотой реализации и возможностью использовать резервный сервер в работе и резервном копировании, а также поддержкой различных режимов синхронизации основного и резервного сервера: синхронный, асинхронный, отложенный.

Total Recall

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

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

Total Recall

Похожих или аналогичных технологий в других СУБД пока не реализовано.

In Memory Database Cache

Уникальная технология In Memory Database Cache реализована на базе существующей базы данных Oracle TimesTen in memory database. Эта СУБД за счет ряда применяемых уникальных решений позволяет увеличить скорость обработки транзакций и выдачи запросов более чем на порядок (т.е. в 10 раз), чем обычная СУБД Oracle Database. Эта СУБД ориентирована на хранение и обработку данных только в оперативной памяти сервера.

In Memory Database Cache

Начиная с 10-й версии Oracle Database, СУБД Oracle TimesTen может выступать в качестве промежуточного звена между клиентским приложением и Oracle Database. В этом случае TimesTen реализует функции сверхбыстрого кэша данных, принимая и обрабатывая транзакции и передавая обработанные данные на хранение в Oracle Database. Такая архитектура позволяет значительно повысить потенциал и расширить сферу применения Oracle Database. Фактически, в такой архитектуре Oracle Database способна справиться с любой транзакционной нагрузкой.

Automatic Storage Management

Технология ASM приносит принципиально новые концепции в управление дисковой подсистемой сервера базы данных. Суть этой технологии заключается в абстрагировании дисковой подсистемы СУБД от файлов на жестком диске в файловой системе и абстрагировании собственно сервера базы данных от расположения файлов на дисках. В ASM управление осуществляется не файлами на дисках, а разделом диска, не форматированным в файловой системе. Причем, если используется не один жесткий диск, а набор дисков или RAID-массивов, эти диски объединяются в группу ASM и выглядят для СУБД как один жесткий диск.

Automatic Storage Management

Решением задачи по распараллеливанию данных по жестким дискам для достижения оптимальной производительности занимается теперь не системный администратор, а экземпляр ASM в автоматическом режиме и эффективней, чем это мог бы сделать администратор БД. Также решается задача по обеспечению надежности за счет избыточности хранимых данных. Уровень избыточности задается системным администратором. Теперь возможно извлекать и добавлять жесткие диски для базы данных <налету>, путем выполнения простых команд ASM. Поскольку ASM – это отдельный экземпляр, т.е. отдельнаый программный комплекс, не связанный с СУБД, один экземпляр ASM может обслуживать несколько экземпляров СУБД.

Аналогичных решений в других СУБД пока не предложено. Вместе с тем, трудно оспаривать выгоды по производительности и упрощению (а значит повышению надежности) администрирования СУБД, использующей ASM.

На сегодняшний день существуют как проприетарные, так свободно используемые системы управления базами данных, например, такие как:

  • IBM DB2 UDB
  • Microsoft SQL Server
  • MySQL
  • PostgreeDB
  • FireBird

Каждая система имеет свои особенности, преимущества и недостатки и свою цену.

СУБД Oracle является старейшей СУБД, первая версия появилась в 1979 году. С тех пор Oracle  развивался, становился быстрее, надежней и удобней для разработчика и пользователя. Фактически, конкурирующие СУБД повторяют тот путь, который прошел в своем развитии Oracle, и реализуют у себя технологии, реализованные в Oracle Database с годичным и более отставанием и с различным успехом. Как уже было отмечено, на сегодняшний день Oracle обладает как минимум 4-мя уникальными технологиями, обеспечивающими конкурентное преимущество этой СУБД. О том, что Oracle Database является признанным лидером в этой отрасли производства ПО, свидетельствует тот факт, что по итогам 2007 года Oracle  Database принадлежит 47% мирового рынка систем управления базами данных.

Диаграмма СУБД

Какими же именно преимуществами обеспечен этот факт?

Некоторые из технологий, реализованных в Oracle Database, имеют аналоги в других СУБД, например, MS SQL Server, но практически во всех сравнениях аналогий, Oracle предоставляет более широкий и удобный функционал в рассматриваемой области.

Сравнение Oracle Database 10g-11g и Microsoft SQL Server 2005-2008

Версионный режим

Суть этой технологии заключается в обеспечении согласованного чтения данных. Т.е., представим  ситуацию: в 10:00 пользователь А начинает чтение данных из таблицы. В 10:05 он прочитает только половину данных, которые хранятся в таблице. В 10:03 пользователь В изменяет данные этой таблицы от середины и до конца. Какие данные должен получить пользователь А, когда он дойдет до конца таблицы ? Очевидно, что он должен получить ту картину, которая была на момент начала работы его запроса, т.е. без учета изменений, которые внес пользователь В. Это необходимо для защиты транзакций от несогласованных изменений данных, которые могли быть вызваны другой, конкурентной, транзакцией, и обеспечивает изоляцию транзакций. Версионный режим появился впервые в версии SQL Server 2005 и практически полностью копирует реализацию в Oracle, которая появилась 83-м году в 3-й версии. Но есть одно существенное отличие: в MS SQL Server версии строк хранятся в tempdb, в то время как в Oracle Database – в отдельной структуре сегментов отката (в Oracle для отдельных транзакций можно создавать отдельные сегменты отката ). Tempdb часто становится головной болью администратора MS SQL Server и без версионности, проблеме i/o в tempdb на msdn посвящена не одна нота, т.к. там помимо временных таблиц и табличных переменных хранятся сортировки и курсоры. Добавление в tempdb еще и версий строк делает и без того перегруженный tempdb узким местом в системе.

Следующее важное различие в том, что сегменты отката Oracle Database защищены от безразмерного роста и место пространства отката используется циклически (размер и их количество может задаваться администратором). При неправильном размере сегментов очень длинная транзакция может получить ошибку ORA-01555 snapshot too old, в результате чего откатится лишь одна транзакция, в то время как в MS SQL Server рост tempdb не ограничен, в результате одна <неудачная> транзакция может просто переполнить tempdb и остановить работу всех пользователей (есть job, которым можно как-то попробовать среагировать). В Oracle Database, в отличие от MS SQL Server, хранятся не версии строк, а блоки данных, что позволяет накладывать версионность универсально на любые объекты, плюс оптимизировать операции ввода-вывода. Например, при необходимости делать клон блока в памяти, который уже помечен на сброс (на жесткий диск), и не ждать, пока блок дождется своей очереди и окажется на диске.

Версионный механизм позволяет в Oracle  Database делать ретроспективные (flashback) запросы и видеть состояние таблиц в прошлом, чего нет в SQL Server.

Размер блока

Блок базы данных – это наименьшая единица информации, которую СУБД читает или записывает на жесткий диск или в оперативную память. Например, чтобы прочитать одну строку из таблицы, которая занимает 200 байт, требуется прочитать из памяти или жесткого диска блок целиком, размер которого составляет, например, 8000 байт и затем извлечь из прочитанного блока нужную строку. Очевидно, что в этом случае 7800 байт были прочитаны зря. Обратная ситуация, когда требуется прочитать все строки таблицы, СУБД будет вынуждена прочитать тем больше блоков, чем больше строк и больше размер одной строки. Выгодно было бы прочитать 1 блок размером, например 32 килобайта, чем читать 4 блока размером по 8 килобайт. Одной из приоритетных задач по настройке производительности является минимизация количества логических чтений (прочитанных блоков), и в Oracle Database администратор имеет множество механизмов для решения этой задачи.

Кроме того, в Oracle Database реализован механизм управления заполнением пространства блока (pct_free, pct_used), что позволяет эффективно настраивать СУБД для решения той или иной задачи.

В SQL Server размер блока (page size) равен 8 килобайт и не может быть изменен, что сильно ограничивает возможность настройки системы, особенно DSS систем (хранилища данных). В Oracle Database размер блока задается во время создания базы данных, и, более того, для каждого табличного пространства может быть задан свой размер блока, например, для табличных пространств с маленькими, часто меняющимися таблицами – меньший размер, для табличных пространств с большими, редко изменяющимися таблицами, содержащими большой объем данных – больший размер, что существенно может повлиять на производительность системы в целом.

Индексы

В Oracle Database поддерживаются различные типы индексов, которые не реализованы в MS SQL Server, например: B-tree cluster indexes, Hash cluster indexes, Reverse key indexes, Bitmap indexes,  Bitmap join indexes. Каждый из типов индексов может обеспечить существенный прирост производительности в той или иной ситуации.

Тип индекса

Oracle Database

MS SQL Server

B-tree

Да

Да

Function-based

Да

Да

Bitmap

Да

Нет

Reverse

Да

Нет

Использование Bitmap index позволяет значительно ускорить выбор по полям с низкой селективностью, т.е. небольшим количеством различающихся значений в поле. Использование такого типа индекса – один из путей решения проблемы производительности в системах хранилищ данных.

Использование Reverse index позволяет уменьшить конкуренцию за блоки БД при вставке в поле монотонно нарастающих значений: например, номеров документов или уникального ключа. Это еще один инструмент администратора базы данных по повышению производительности системы без увеличения мощности оборудования.

Indexed views и Оracle materialized views

В Oracle Database, начиная с 9-й версии реализован механизм материализованных представлений, который является одним из ключевых моментов, обеспечивающих функционирование хранилищ данных, OLAP и DataMining. Суть этой технологии заключается в хранении результатов сложных и очень сложных SQL запросов, формирующих какой-либо отчет, либо часть отчета в виде особых таблиц – материализованных представлений. Это позволяет не тратить время каждый раз при исполнении таких запросов на выборку и анализ данных, а выбирать готовые результаты их материализованного представления, что очень существенно позволяет ускорить работу отчетных систем и систем поиска данных. В MS SQL Server аналогичная технология появилась только с версии 2005 и имеет длинный список ограничений на построение материализованных представлений, так, например представление не должно содержать следующего списка операторов: ANY, NOT ANY, OPENROWSET, OPENQUERY, arithmetic on imprecise (float, real) values, OPENXML, COMPUTE, COMPUTE BY, ORDER BY,CONVERT producing an imprecise result, OUTER join, COUNT(*) reference to a base table with a disabled clustered index, GROUP BY ALL    reference to a table or function in a different database, Derived table (subquery in FROM list) reference to another view, DISTINCT, ROWSET function, EXISTS, NOT EXISTS, self-join expressions on aggregate results (e.g. SUM(x)+SUM(x)), STDEV, STDEVP, VAR, VARP, AVG, full-text predicates (CONTAINS, FREETEXT, CONTAINSTABLE, FREETEXTTABLE), Subquery, imprecise constants (e.g. 2.34e5), SUM on nullable expressions, inline or table-valued functions, table hints (e.g. NOLOCK), MIN, MAX, text, ntext, image, filestream, or XML columns, non-deterministic expressions, UNION. Как видите, список более чем представительный. В Oracle Database ограничений существенно меньше. Кроме того, традиционно, в Oracle имеются и расширения этой технологии: автоматическая перезапись SQL запросов, если существует подходящее материализованное представление, которых нет в других СУБД. Это расширение позволяет работать с материализованными представлениями без модификации исходного кода приложения, которое работает с этой базой данных. Трудно переоценить значимость этой возможности для администраторов базы данных и конечных пользователей.

Также только в Oracle Database реализовано кластерное хранение данных, когда в одном блоке базы данных хранятся данные двух или более связанных таблиц. Таким образом, при чтении связанных данных из двух или более таблиц обеспечивается чтение одного блока данных, вместо того, чтобы читать два или более блока для каждой таблицы.

Список существенных отличий на уровне функционирования базы данных можно продолжать еще долго, например возможность использования и хранения готовых планов выполнения SQL запросов и т.п. Конечно, эти различия востребованы не всегда, и для того, чтобы правильно воспользоваться преимуществами Oracle Database требуется определенная квалификация. Но в критических ситуациях и для повышения производительности базы данных в каждом конкретном случае эти преимущества могут стать и фактически становятся неоспоримым конкурентным преимуществом, обеспечивающим прирост производительности не решением <в лоб> - закупкой более мощного, а значит и более дорого оборудования, а путем тонкой настройки СУБД для каждого конкретного случая. Oracle оставляет своему заказчику выбор: либо интеллектуальная настройка и самонастройка базы данных, либо переход на более мощное оборудование или создание кластера серверов. Конкурирующие СУБД, несмотря на красивый и удобный интерфейс администратора базы данных, фактически не предоставляют адекватных средств настройки СУБД и оставляют единственный путь повышения производительности для всех случаев: повышение мощности оборудования.

Зачем тратить деньги на новое оборудование, если есть возможность <выжать> максимум из существующего?

Также Oracle Database остается одной из самых удобных для разработки СУБД.

Например, в Oracle Database давно существует мощный внутренний процедурный язык: PL/SQL, который позволяет разрабатывать триггеры, хранимые процедуры и функции любой сложности. Ключевыми особенностями являются наличие блоков try/catch (безопасное выполнение коды), которое появилось только в 2005-й версии MS SQL Server, наличие пакетов (программных структур, которые объединяют типы, переменные, функции и процедуры в одну подпрограмму), наличие неограниченной рекурсии (MS SQL Server вложенность рекурсии ограничена 32 уровнями).

Существенной особенностью Oracle Database, не реализованной в MS SQL Server, является наличие проверки взаимосвязи различных объектов базы данных. Так, например, при модификации таблицы в базе данных Oracle (изменение типа поля, удаление поля и т.п.), процедуры, триггеры и функции, в которых были обращения к этой таблице, будут помечены как инвалидные и не будут исполнятся без вмешательства администратора. Это позволяет исключить выполнение заведомо ошибочных действий в процедурах (например, обращение к несуществующему полю) и функциях. В MS SQL Server процедура будет выполняться, пока не будет выполнен вызов к уже не существующему полю в таблице, после чего процедура аварийно завершит свою работу.

Также в Oracle PL/SQL есть поддержка объектно-ориентированных типов, поддержка массивов и вложенных таблиц.

В Oracle Database, в отличие от MS SQL Server давно есть поддержка всех видов триггеров: <до>, <после>, <вместо> выполнения. В MS SQL Server 2005 нет типа  <до> (на подключение пользователя к базе).

В MS  SQL Server 2005 диалект обновился: появился оператор WITH и аналитические функции. В Oracle Database аналогичный функционал появился еще в 8-й версии,  аналитические функции более разнообразны, кроме этого в Oracle  Database поддерживаются операторы MERGE INTO, model и регулярные выражения в SQL. Использование регулярных выражений в различных частях SQL запроса появилось с 10-й версии Oracle Database и является существенным подспорьем разработчику при программировании аналитических SQL запросов.

Процедуры и функции, написанные на PL/SQL, можно компилировать в нативную для операционной системы библиотеку, например, DLL. Это позволяет работать такой функции, как части СУБД Oracle Database, написанной на С++, без этапа интерпретации и разбора, что позволяет значительно ускорить работу такой процедуры.

В Oracle Database поддерживаются автономные транзакции в PL/SQL блоках, а также выполнение SQL запросов <из текста>, так, как это делается в приложении на с++, например.

На сайте www.oracle.com давно находятся в свободном доступе компоненты ODP.NET, которые позволяют удобно и эффективно работать с СУБД Oracle из среды MS Visual Studio. Для других средств разработки (Borland Delphi, C++ Builder и прочих) реализовано множество компонент и инструментов доступа и работы с Oracle Database, как бесплатных, так и коммерческих.

Производительность

Производительность, наряду с надежностью, – основной критерий выбора Oracle Database в качестве системы управления базами данных. Существуют синтетические тесты производительности, такие, например, как TPC (www.tpc.org). В тесте TPC-С, который проверят производительность СУБД в OLTP системе, Oracle Database занимает одну из лидирующих позиций.

На синтетических тестах и  в реальной работе очень часто любят показывать результаты тестирования MySQL или MS SQL Server, в которых при небольшом объеме данных и специализированной нагрузке производительность этих СУБД значительно превосходит производительность Oracle Database или, например, IBM DB2 UDB, т.е. продуктов, которые считаются СУБД <промышленного уровня>. Это означает, что эти СУБД способны обрабатывать фактически неограниченный объем данных и число работающих пользователей. Конечно, в самих в этих словах уже заложена <информационная мина>, поскольку невозможно объять необъятное. Под словами <неограниченный> следует понимать, что именно эти две СУБД являются лидерами по хранимому объему данных и работающим пользователям, при этом сохраняя весь свой разносторонний функционал. Кроме того, если внимательно посмотреть на синтетические тесты, то можно заметить тот факт, что производительность Oracle Database практически не меняется, а то и увеличивается при возрастании обрабатываемого объема данных. Именно это свойство отличает промышленную систему от настольной или системы рабочих групп. Проводя аналогии в автомобильной технике, можно сказать, что никому в голову не придет сравнивать скоростные характеристики легкового автомобиля и грузовика. Пустой легковой автомобиль способен ехать со скоростью 160 км/ч, а пустой грузовик - 80 км/ч. Если на легковой автомобиль нагрузить 200 кг груза, он будет ехать со скоростью 120 км/ч, а грузовой - 80. Если нагрузить 600 кг груза, то легковой будет ехать со скоростью 60 км/с, а грузовой 80 км/ч. И, если нагрузить тонну груза, то скорость движения легкового автомобиля будет равно 0 км/ч, а грузового - по-прежнему 80. В этом – суть промышленного сервера баз данных: устойчивость к нагрузке.  Впрочем, это не мешает СУБД Oracle лидировать в тестах и ставить мировые рекорды производительности.

Масштабируемость

В отличие от MS SQL Server, Oracle Database работает на большинстве известных платформ и операционных систем: Windows (в том числе не серверные версии), Unix, Linux, MacOS. Это существенное преимущество Oracle Database. Преимущество заключается не только в том, что сейчас Oracle оставляет заказчику выбор операционной системы и аппаратной платформы, но и в том, что в корпорации существует опыт и культура разработки именно кроссплатформенных систем, следовательно, при появлении новой операционной системы, более мощной и эффективной, можно быть уверенным, что под эту операционную систему или платформу появится версия Oracle Database.

В случае, если СУБД базируется только на одной операционной системе, то заказчик полностью зависит не только от производителя собственно СУБД, но и от производителя операционной системы. Зависимость эта тем более усугубляется, если производитель и СУБД и ОС - один и тот же.

Стоимость обслуживания

Существуют различные исследования на эту тему. Например, в исследованиях, опубликованных на сайте Microsoft, как дважды два доказывается, что обслуживание SQL Server стоит намного дешевле и требует меньше усилий со стороны администратора. На сайте Oracle опубликованы не менее солидные и содержательные исследования, в которых точно также неоспоримо доказывается факт более низкой стоимости обслуживания именно Oracle Database. Причем оба исследования проводятся независимыми компаниями. Исходя из нашего личного опыта, можно сказать, что администрирование SQL Server осуществляется из действительно удобной и логично-простой среды SQL Server Management Studio. В Oracle Database также существует удобная и простая среда выполнения всех административных действий: Enterprise manager. Начиная с 10-й версии, EM имеет web-интерфейс. Следует отметить, что из Oracle EM можно управлять не только единичным экземпляром базы данных, но и кластером и сетью GRID-серверов.

Enterprise manager

В 10-й, и в 11-й версии Oracle Database улучшены и дополнены функции самоадминистрирования и самодиагностики сервера. В 10-й версии появилась функции автоматического сбора статистики, анализа и выдачи рекомендаций. Отслеживание различных показателей, с выдачей сообщения при достижении пороговых или критических величин.

Полное управление базой данных

Анализатор SQL запросов позволяет выбрать и настраивать наиболее <тяжелые> SQL запросы, причем предусмотрен вариант, в котором администратор просто выбирает проблемный SQL запрос, просматривает и применяет рекомендации SQL Tuning Advisor, все это происходит в консоли EM. В MS SQL Server выполнение аналогичной задачи выполняется ручным способом, на порядок дольше, чем в Oracle Database, за исключением настройки индексов.

Enterprise manager 

Использование появившейся в 10-й версии технологии Flashback table позволяет значительно упростить восстановление после пользовательских ошибок. Больше не требуется восстановление из резервной копии, достаточно выбрать удаленный объект и восстановить его из <корзины>. Следует отметить, что в MS SQL Server также возможно выполнение аналогичной операции, но требует значительно больше времени: требуется восстановление из резервной копии, выбор точки восстановления и накат потерянных транзакций вручную. Тоже самое касается и восстановления после ошибочной транзакции. В Oracle Database это делается как через консоль EM, так и вручную, SQL операторами, причем требуется просто выбрать момент в прошлом, на который требуется восстановление. В MS SQL Server восстановление также производится из резервной копии с последующим ручным накатом журналов.

Enterprise manager

Таким образом, Oracle Database предоставляет пользователю три варианта:

  1. полная самодиагностика и самонастройка, которая совершенствуется от версии к версии, обобщая и базируясь на опыте тысяч администраторов по всему и миру и математических моделях;
  2. мощную и удобную консоль администратора, не требующую установки какого-либо дополнительно ПО на компьютер администратора, и, следовательно, доступную с любого компьютера в сети, в том числе по сети Интернет, если это необходимо;
  3. тонкие средства диагностики и настройки, оставшиеся с прошлых версий и позволяющие администратору в полной мери применить свои знания в области настройки производительности.

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

Сравнение Oracle Database 10g-11g и IBM DB2 UDB 8-9

IBM DB2 UDB и Oracle Database имеют неофициальный статус баз данных «промышленного» уровня. Эти две СУБД  во многом похожи, но имеются и отличия, влияющие на эффективность и стабильность СУБД. В таблице приведены некоторые отличия в работе внутренних механизмов этих СУБД.

Свойство

Oracle

DB2

Concurrency Model

Multi-version read consistency
Non-Escalating row-level locking

No
Locks escalate

Clustered configurations

Transparent scalability with Real Application Clusters

Rigid data partitioning required with DB2 EEE

Indexing capabilities

Wide variety of indexing schemes

Only B-Tree and dynamic bitmap indexes

Partitioning options

Range, hash, list and composite partitioning
Local and global indexes

Only hash partitioning
Only local indexes

Additional data warehousing capabilities

MERGE
Multi-table INSERT

Not supported
Not supported

Intelligent advisories

Index, Summary, Memory, MTTR

Index advisory only

Self-tuning capabilities

Self-tuning memory, free space, and I/O management

No equivalent or limitedcapabilities

В первой строке сравнивается механизм блокировок и обеспечения целостности чтения. Более подробно в таблице:

Oracle9i

DB2

Multi-version read consistency

Not available

No read locks

Requires read locks to avoid dirty reads

No dirty reads

Dirty reads if not using read locks

Non-escalating row-level locking

Locks escalate

Readers don’t block writers

Readers block writers

Writers don’t block readers

Writers block readers

No deadlocks under load

Deadlocks can be a serious problem under load

Во второй строке – работа в кластере, Oracle RAC и IBM EEE:

Oracle RAC

DB2 EEE

No two-phase commit required

Requires two-phase commit

Data cached in multiple nodes

IPC for every cross-partition access

Single probe for data

Multiple partition probes

Uniform load distribution

Load skew likely

Более подробно по поддерживаемым типам индексов:

Тип индекса

Oracle

DB2

Reverse Key Indexes

Да


Function-based Indexes

Да

Partial

Dynamic Bitmap Indexes

Да

Да

Stored Compressed Bitmap Indexes

Да


Bitmap Join Indexes

Да


Index-organized Tables

Да


В Oracle Database больше поддерживаемых вариантов партиционирования:

Вид партиционирования

Oracle

DB2

Range partitioning

Да


List partitioning

Да


Hash partitioning

Да

Да

Composite partitioning

Да


Local index

Да

Да

Global partitioned index

Да


Global non-partitioned index

Да


Сравнение Oracle Database 10g-11g и MySQL 4-5

Разумеется, и мы отдаем себе в этом отчет, сравнивать MySQL и Oracle Database – это все равно, что сравнивать велосипед и грузовик Камаз. По своему предназначению и функциональному наполнению эти СУБД несравнимы. Если коротко, основное отличие этих СУБД в том, что MySQL предназначен для решения узкого круга задач, ввиду своей функциональной неполноценности, в то время как Oracle Database не имеет ограничений в применении – от простой базы данных, обслуживающей сайт или небольшую компанию, до огромных и мощных хранилищ данных со встроенными решениями задач класса OLAP или DataMinig, хранящих любые данные: от простых таблиц до документов, видео-файлов, геоинформационных данных и т. п.

Поэтому остановимся лишь на нескольких, наиболее часто обсуждаемых, моментах.

  1. MySQL – бесплатное решение. На сегодняшний день это действительно так. Кроме того, у Oracle также имеется бесплатная редакция СУБД Oracle Database. Это редакция eXpress Edition (XE). Она доступна для скачивания на сайте www.oracle.com, абсолютна бесплатна для использования в бизнесе и имеет версии под Windows и Linux. Заказчикам, которые выбирают MySQL именно ввиду его бесплатности, следует подумать о том, что рано или поздно функционал MySQL перестанет удовлетворять растущие потребности бизнеса, и тогда придется переходить на одну из коммерческих СУБД, предлагающих более полный функционал. Процесс миграции на другую СУБД – это всегда вопрос времени и денег. Не лучше ли сейчас использовать бесплатную редакцию Oracle Database, чтобы в будущем максимально упростить и облегчить процесс перехода на более мощную редакцию этой же СУБД?
  2. MySQL – самая производительная СУБД. Действительно, если взглянуть на тесты на www.tpc.org, например, на синтетический read-only benchmark с доступом данных по первичному ключу, то мы увидим, что MySQL занимает лидирующие позиции. Доступ по первичному ключу обычно очень быстрый, так что тест показывает максимальную пиковую производительность, какую СУБД может выдать. Вся таблица помещается в оперативной памяти, I/O активность отсутствует, результат ограничен только процессорами. Конечно, в таком тесте победителем должен стать интерфейс к текстовому файлу, но его почему-то не сравнивали, сравнили Oracle и MySQL. Интересно то, что даже на таком тесте разница оказалась незначительна. А вот если взглянуть на другие тесты, измеряющие работу СУБД в совокупности различных режимов, то картина несколько изменится. В реальной жизни при использовании СУБД в работе, которая предусматривает одновременно различные по характеру нагрузки на СУБД, производительность MySQL оставляет желать лучшего. Высокая производительность MySQL на узком круге задач – прямое следствие ее функциональной простоты. Обратной стороной такой производительности является узость применения этой СУБД.
Скидки для разработчиков
Технологический Центр
Технологии для ISV
Преимущества СУБД Oracle
Продажа ваших решений
Онлайн продажи
SaaS
Маркетинг с Oracle
поиск
как связаться
+7 (495) 232-52-15
доб. 0350
115088 Москва,
ул. Угрешская, д. 2, стр. 76
oracle@axoft.ru

Вход

Забыли свой пароль?

Регистрация

Axoft - Oracle Value Added Distributor