TOPサーバ構築・運用> Oracle Databaseの特徴
はじめてのOracle
やっぱりOracleが好き

第1回:Oracleの今とこれからを理解しよう

著者:日本オラクル  一志 達也   2007/8/2
前のページ  1  2  3  次のページ
Oracle Databaseの特徴

   これより、オラクルが支持されている理由として技術面におけるOracle Databaseを紹介します。

エスカレーションの発生しないロック

   一般的なデータベースは、複数のユーザが同時にアクセスを行う前提で作られています。その中でも基本的なものが「ロック」です。これは誰かが編集中のデータを、他の人が編集できないようにする機能です。ロックの単位は粒度の細かい順に、行/ページ/表などがあります。

   当然ロックされている部分は、それが解放される編集終了まで使えなくなりますので、ロックの粒度は細かいに超したことありません。自分が本当に編集している行だけをロックした方が、同時に多数のユーザに編集の機会を与えることができるためです。したがって、多くのデータベースは、行レベルでのロックを機能として提供しているのです。

   ところが、あまりに多数のユーザが同時に更新を行う、あるいは多数の行をロックされると、ロックの情報を記憶しきれなくなってしまうことがあります。そうするとロックの粒度を上げて、ページや表のレベルでロックを行ってしまいがちです。

   これが「ロックエスカレーション」と呼ばれるもので、頻発するようになると実質的にシステムのレスポンスが悪化することとなり、使い勝手を大幅に損なう要因となるのです。

   Oracle Databaseはロックエスカレーションを起こさないように設計されており、表の中のすべての行をバラバラにロックされても問題ありません。こういった問題は大規模データベースだけに起こる話と思われがちですが、実は違うのです。数人や数十人といった小規模で使うシステムでも、バッチ処理で大量データを処理する場合などには、やはりロックエスカレーションの影響を受ける可能性もあるのです。

読み取り一貫性

   例えば下記のようなデータの回答はどうなるのか考えてみてください。

Aさんは、5万アイテムの商品在庫について合計を算出する処理を、朝10時にスタートした。5万アイテムの合算にかかる時間は15分である。この15分の間にも、商品は売れていくので、在庫数量は変化していく。朝10時の本当の在庫数は5,000だったが、15分後の在庫数は4,500であった。

   ここでAさんが受け取るべき結果は、処理終了時点の在庫数である4,500です。実はそう答えられるデータベースは存在しないのです。なぜなら、刻々と変化するデータを、再度読み直していたのではきりがないためなのです。

   Oracle Databaseは、この答えを5,000と返すようになっています。Oracle Databaseに古くから備えられている読み取り一貫性は、処理を開始した時点のデータで処理を行って答えを返す仕組みなのです。これはデータが変更されるたびに以前のデータを一定期間記録しています。読み取り処理はこの記録との比較を行いながら、変更が行われていれば記録の方を読み出しているのです。

   ところが、このように記録する仕組みを持たない他のデータベースでは、さきほどの処理の答えはいくつになるかわからないのです。つまり処理開始後に変更のあったデータも、そのまま読み取ってしまうので、中途半端な処理結果が戻されてしまいます。これを「ダーティリード」というのですが、実はほとんとのデータベースでは、それが当たり前のように行われているのが現実なのです。

   この部分は難しく考え出すと頭が混乱してしまいがちですが、簡単に考えれば出てきた答えがいつの時点のものかが明確になっている方が、より信憑性の高いデータに違いないと思いませんか。Oracle Databaseは、このように一見地味な機能も、遙かに以前のバージョンから備えているのです。


パフォーマンス

   「オラクルはパフォーマンス(処理速度)が優れている」、これはオラクルに対するイメージの1つでしょう。価格が高いとか大規模向け製品という誤ったイメージもあるようですが、パフォーマンスが優れていることのは間違いのない事実です。

   データベースのパフォーマンスの善し悪しをはかるには、まったく同一のハードウェアを使い、同一の処理を行って競い合うしかありません。しかし、それはなかなかできるものではないので簡単に比較するのは困難なのです。そうした中、比較的公平に競い合えるのが、パッケージソフトウェアを使った処理速度の比較です。

   例えばSAPは専用のベンチマークを用意してその結果を公表しています。

SAP Standard Application Benchmarks
http://www.sap.com/solutions/benchmark/index.epx

   この中にはいくつかまったく同一のハードウェアで測定された結果があるので比較してみるといいでしょう。Oracle Database最大のライバルとされるSQL Server 2005と比較してみると、40%以上もOracle Databaseの方が高速になっていることを発見できるはずです(注2)。

※注2: 2TierのSAPR Sales and Distribution(SD)Standard Application BenchmarkにおけるCertification Number: 2006071とCertification Number: 2006068を比較した場合。これらの結果は、どちらもDual-Core Intel Itanium 1.6GHzプロセッサを32基搭載する富士通のサーバ「PRIMEQUEST 580」で行われており、一方はSQL Server 2005を用いたもので、もう一方はOracle Database 10gを用いている。

前のページ  1  2  3  次のページ


日本オラクル株式会社 一志 達也
著者プロフィール
日本オラクル株式会社  一志 達也
SI企業において、アプリケーション開発や、データベースを中心としたインフラを担当。その後日本オラクルにて、データベース製品のマーケティングを担当している。現在は中堅中小規模システム向けの製品マーケティングに従事。開発ツールの啓蒙活動にも励んでいる。


INDEX
第1回:Oracleの今とこれからを理解しよう
  意外と知らないオラクル
Oracle Databaseの特徴
  高度な可用性