SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

これがOracleのインメモリ!Oracle TimesTenのすべて

第2回 Oracle TimesTenを高速化させる極意


今回は、Oracle TimesTenを上手く使いこなすための極意について熱く語りたいと思います。

 Oracle TimesTenを高速化させるも永続化させるも設定次第であると前回の記事で軽く触れました。とはいっても、やはりOracle TimesTenを導入されるお客様の多くはパフォーマンスを最重要視するケースが多いので、まずはOracle TimesTenをより高速化させるための設計ポイントについて解説します。

Oracle TimesTenを高速化させる極意

 最初に整理しなくてはいけないのは、Oracle TimesTenで速くしたいのはどんな処理なのか?という点です。更新も参照もなんでもかんでも速くしたいという要件であればそれも実現可能ですが、参照だけ高速化できればよいのであれば読取専用データベースとして使用させることが最もシンプルで速い構成になります。

 更新や削除も含めて高速化したいという場合は、以下のようなチューニングポイントがあります。

極意1:DurableCommitsは無効化すべし。

 DurableCommitsパラメータを無効化し、コミット時にログをディスクまで書かせない設定にします。これによってコミット処理にかかる時間が短縮されるため、レスポンスが速くなります。

 DurableCommitsパラメータはデフォルトで無効化されているので、明示的に有効化しない限りはコミットの度にディスクまでログが書き込まれることはありません。

極意2:ログバッファは潤沢に用意すべし。

 ログバッファ(LogBufMBパラメータで指定)に充分なサイズを設定することで、ログバッファがあふれてディスク上のログファイルに頻繁にフラッシュされることを防ぎます。

 ログのディスクへの書き込みが頻発し、ログファイルへの書き込みがまだ終わらないうちにログバッファがいっぱいになると、ログバッファ待機が発生し、処理の遅延につながります。

極意3:チェックポイントは必要最低限に留めるべし。

 Oracle TimesTenではチェックポイントの間隔を明示的に調節できるので、この運用をどう設計するかが重要です。

 パフォーマンス重視なら、チェックポイント頻度を極力少なくして、チェックポイントで発生するI/O負荷やCPU負荷を抑えた方がよいです。

 しかし、だからといってチェックポイント頻度が少なすぎると、ディスク上のログファイルがどんどん増え続けてしまうことになります。

 ログファイルを格納する領域が枯渇し、ログがそれ以上書き込めなくなると更新処理が行えなくなりますので、必要最低限のチェックポイントは行わなければいけません。

 チェックポイントのチューニングはそのシステムの更新頻度や更新量に依存するので、まずはデフォルトの自動チェックポイント設定(600秒)のままで負荷テストを行い、パフォーマンスやログファイルの増加傾向を確認しながら必要に応じて変更することをおすすめしています。

極意4:とにかくデータ連携は非同期にすべし。

 レプリケーションも、Oracle Databaseとのデータ連携も非同期にした方がパフォーマンスはよいです。

 もちろん、なんでもかんでも非同期にしてしまうと永続性が弱くなってしまうので、ここの落としどころについては後でまたご説明します。とにかく、今は「パフォーマンスが最優先なら非同期がいいのね」と理解しておいてください。

極意5:SQLはシンプルに書くべし。

 Oracle TimesTenにもいろいろな実行計画がありますが、Oracle Databaseほどのバリエーションはありません。したがって、副参照の多いSQLや結合するテーブルの多いSQLは高速化のメリットを享受できないケースもあります。

 Oracle TimesTenはインデックスを使用したシンプルなSQLが得意であり、いかにインデックス・スキャンで処理させるかが肝といえます。

 また、Oracle Databaseと同様にバインド変数を使用して解析回数を減らすことも重要なポイントです。

極意6:CPUを枯渇させるなかれ。

 Oracle TimesTenはメモリ上で全ての処理を行うため、CPUリソースを消費しながら高性能を実現する製品であることを忘れないでください。

 Oracle TimesTenという名前は「CPUを10倍効率的に使用する」という意味であり、基本的にはCPUを効率的に使用しますが、それでもCPUが枯渇するような状況ではパフォーマンスはなかなか伸びません。

 まずは、簡単なPOC(Proof Of Concept)を実施していただき、どの程度のCPUスペックがあれば問題ないのか見積もっていただくことをおすすめします。

極意7:クライアントサーバ接続よりもダイレクト接続にすべし。

 Oracle TimesTenはアプリケーションサーバ内にインストールしてダイレクト接続させることも可能ですが、別サーバにインストールしてクライアントサーバ接続させることも可能です。

 イン・プロセス動作し、ネットワークのオーバーヘッドがない分、ダイレクト接続の方が断然速いので、パフォーマンスを追求するならダイレクト接続です。

次のページ
Oracle TimesTenの一般的な構成

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
これがOracleのインメモリ!Oracle TimesTenのすべて連載記事一覧

もっと読む

この記事の著者

三浦 かなこ (ミウラ カナコ)

日本オラクル株式会社
コンサルティングサービス統括
テクノロジーソリューションコンサルティング統括本部
テクニカルアーキテクト本部 データベースアーキテクト部前職ではSEとして、アプリケーション開発、設計、アプリケーション試験チームリーダーなどを経験。 7年間の現場経験を経...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/3674 2012/02/10 18:29

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング