企業ITの中のデータベースはアプリケーションとは切っても切れない関係。ライセンスは? クラウドインフラへの対応状況は? 運用実務の課題や疑問を整理する。
データベース高速化のカギはいまも昔も「I/O」にある。あらゆるデータの出入り口のI/O速度をそろえていくのがパフォーマンスチューニングのポイントといえる。前編で言及したように、この数年は、ディスクストレージをより高速なフラッシュストレージに置き換えていく選択が有効視されている。またトランザクション処理の応答性能を高める場合は、キャッシュに高速ストレージを採用する手法も、現実的な価格帯で選択できるようになってきている。
しかし、さらなる高速化を求める場合、データベースエンジンが持つ高速化の仕組みをフルに活用する必要がある。特にOracle DatabaseやMicrosoft SQL Server、SAP HANAなどは「インメモリデータベース」として活用する方法があり、これによる高速化が期待できる。これらのデータベースエンジンは「インメモリ領域を活用する」ことは一致しているものの、実装の方向性から得意な分野がそれぞれ異なる。では、それぞれの特長を見てみよう。
2016年は主要な商用データベースソフトウェアの新バージョンが出そろう時期でもある。どの製品も直近のITインフラに求められる機能を盛り込んでいるが、中でも各製品が注力しているのが「インメモリ」機能だ。文字通りデータベースを高速なメモリの上に置くことでさらに処理速度を高めていこうというものだ。
メモリからストレージへの書き込みといった「書き込み完了」を待つ時間をデータベースの応答性能と分離できるようになる。
Oracle Database 12cの場合、インメモリオプションを「既存環境でもそのまま使える」ことが重視されている。そのため、高速化したいテーブルのみをインメモリ領域に持つことで、処理の高速化を実現している。
Oracleではこれまでもキャッシュ領域を活用し、より高速な処理が行えるよう最適化実装が行われ続けていたが、その延長での実装が行われている。
マイクロソフトのSQL Serverでは、インメモリOLTPオプションにより、トランザクション処理の高速化をより重視した実装になっている。高速化したいテーブルをメモリ最適化テーブルとして指定し、行指向の形でメモリ上に置く。メモリ最適化テーブルには、これまで外部制約不可や並列クエリがサポートされていないなどの制限が存在していたが、2016版ではこの制限も緩和されているという。
特徴的なのはHANAだ。もともとインメモリを前提としたエンジンであるため、処理自体もそれに最適化した仕組みになっている。列指向のデータを保持し、定期的にログに書き込む以外はメモリ上で完結する。行操作は差分を保持する「デルタストア」を利用し、ロックが不要な仕組みを持っていることも特長だ。ただし、全てのデータをメモリ上に置く必要があるため、その分のメモリ容量およびライセンスが必要となる。
Copyright © ITmedia, Inc. All Rights Reserved.
製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。