ヘッダーをスキップ

Oracle TimesTen In-Memory Databaseアーキテクチャ概要 リリース6.0 B25763-01 |
| 目次 | 索引

前へ | 次へ |

## TimesTenと従来のデータベースの比較

TimesTenは多くの点で他のRDBMSシステムと似ているため、そのインタフェースと管理の大半は親しみやすいものです。この項では、多くのよく知られているデータベース機能について説明し、TimesTenと通常のRDBMSとの類似点および相違点を示します。TimesTenと従来のRDBMSを比較すると、両者の間には多数の重要な相違点があり、TimesTenがどのようにディスク・ベースのRDBMSの何倍ものパフォーマンスの向上を実現しているかが明確になります。

## 標準ODBC/JDBCインタフェース

TimesTenでは、バージョン2.5のODBCとバージョン1.2のJDBCがサポートされます。他の多くのデータベース・システムでは、ODBCまたはJDBC API（あるいはその両方）のサポートが独自のインタフェースよりも大幅に遅くなる場合があるのに対して、ODBCおよびJDBCは、データベース・エンジンで直接動作するTimesTen固有のインタフェースです。TimesTenでは、完全に標準に準拠し、TimesTen環境で最大のパフォーマンスが得られるように調整されたAPIのバージョンをサポートしています。

TimesTen ODBCおよびJDBCのサポートの詳細は、「TimesTenのODBCおよびJDBC API」を参照してください。

## SQL

TimesTenでは、SQL拡張に加えて、SQL-92機能を幅広くサポートすることで、レプリケーション、Oracleデータ・キャッシュ、マテリアライズド・ビューなどの特別な機能の構成と管理が簡単になります。

SQLのサポートの詳細は、「SQL-92標準」を参照してください。管理作業でSQLを使用する方法の詳細は、「SQLによる管理」を参照してください。

## アクセス制御

アクセス制御機能を有効にすることによって、ユーザー・アクセス制御のレイヤーを追加してTimesTenをインストールできます。TimesTenアクセス制御では、標準SQL操作を使用して、特定の権限レベルを持ったTimesTenユーザー・アカウントを設定します。

TimesTenアクセス制御の詳細は、「TimesTenアクセス制御」を参照してください。

## 分散トランザクション

TimesTenでは、XAおよびJTAインタフェースを使用して分散トランザクションをサポートします。これらの標準インタフェースによって、TimesTenは分散トランザクション処理（DTP）環境でトランザクション・マネージャとの相互運用を実現できます。

詳細は、「分散トランザクション処理（DTP）API」を参照してください。

## データベースの接続

他の多くのデータベース・システムと同様に、TimesTenではクライアント/サーバー接続をサポートします。また、TimesTenでは、高いパフォーマンスを得るためのダイレクト・ドライバ接続と、複数の種類のデータベース・システムに同時にアクセスするアプリケーションのためのドライバ・マネージャを介した接続もサポートします。

こうした接続オプションの多様性によって、ユーザーはアプリケーションに対して、最良のパフォーマンスおよび機能性のトレードオフを選択できます。ダイレクト・ドライバ接続は最速で、クライアント/サーバー接続では柔軟性が向上します。また、ドライバ・マネージャ接続では、ODBCバージョン2.5用に作成されていないODBCアプリケーションのサポート、および様々なベンダーの複数のDBMSデータベースの同時サポートが可能です。

アプリケーションでのTimesTenへの様々な接続方法については、「アプリケーションのデータ・ストアへの接続方法」を参照してください。

## ロギング

TimesTenでは、変更のログを保持し、オプションでそれらをディスクに書き込めます。ログは次の目的で使用します。

- アプリケーションまたはデータ・ストアがクラッシュしてリカバリが必要な場合に、トランザクションを再実行する。
- ロールバックされるトランザクションを取り消す。
- 他のTimesTenデータ・ストアに変更をレプリケートする。
- Oracleデータベースに変更をレプリケートする。
- アプリケーションで表への変更を検出（XLA APIを使用）できるようにする。

他の多くのデータベース・システムとは異なり、アプリケーションでロギングを有効にするかどうかを指定できます。ロギングを有効にすると、リカバリ、永続XLAおよびOracleデータ・キャッシュを利用できます。ディスクへのログの書込み頻度は、アプリケーションで正確に指定します。

TimesTenではロギング・オプションを提供することによって、アプリケーションでロギング操作を詳細に調整し、トランザクションの永続性とレスポンス時間の間で最適なバランスが得られます。

ロギング・オプションの詳細は、「ロギング」を参照してください。コミット・オプションの詳細は、「永続コミットと非永続コミット」を参照してください。

## トランザクション・ログの監視とマテリアライズド・ビュー

他のデータベース・システムと同様に、TimesTenには、データベース外の動作に連動させるために、アプリケーションで更新アクティビティを監視できるAPIが用意されています。TimesTenでは、この機能がトランザクション・ログAPI（またはXLA）によって提供され、アプリケーションで、トランザクション・ログに書き込まれる更新レコードを監視し、検出された更新に基づいて様々な動作を起動できます。たとえば、XLAアプリケーションでは、検出した更新を別のデータベース（TimesTenまたはディスク・ベースのRDBMS）に適用できます。別のタイプのXLAアプリケーションでは、重要な更新が行われたことを単にサブスクライバに通知するだけの場合があります。

TimesTenでは、マテリアライズド・ビューを提供してXLAロギングAPIと併用することによって、SQL問合せで記述されたイベントの通知を有効にできます。

ロギングAPIとマテリアライズド・ビューの詳細は、「イベント通知」を参照してください。

## チェックポイント

多くのデータベース・システムと同様に、TimesTenには、バックグラウンドで処理され、データベース・アプリケーションにほとんど影響を与えないように設計されたチェックポイント処理があります。これは、ファジー・チェックポイントと呼ばれます。また、リカバリでログ・ファイルを必要としない、ブロッキング・チェックポイントもあります。チェックポイントは自動です。

多くのデータベース・システムと同様に、チェックポイントの実行中のクラッシュに備えて、TimesTenでは2つのチェックポイント・ファイルを保持します。通常のアプリケーションのアクティビティに対するチェックポイントの影響を最小限に抑えるため、チェックポイントはトランザクション・ログとは別のディスクに常駐します。

チェックポイントの詳細は、「チェックポイント」を参照してください。

## レプリケーション

TimesTenは、TimesTenシステム間でトランザクションを送信するレプリケーション・サブシステムを備えています。レプリケーションは多くのデータベース・システムでの共通コンポーネントですが、TimesTenのレプリケーションは、トポロジ、一貫性およびリカバリに対してアプリケーション制約を与えられても最大のスループットが得られるように、高度に進化しています。多くのRDBMSシステムの非同期レプリケーションを上回る性能を持つ、より同期化されたリターン・サービス・メカニズムとともに、非常に高速な非同期レプリケーション・メカニズムが提供されます。

複数のレプリケーション・オプションが、競合の解消、障害のあったデータ・ストアのリカバリ、オンライン・アップグレードの実行のために用意されています。このレプリケーション・オプションの範囲によって、ユーザーは実行時のパフォーマンス、一貫性、フェイルオーバーの複雑性の間で最適なバランスを決定できます。

レプリケーションの詳細は、「レプリケーション」を参照してください。オンライン・アップグレードの詳細は、「TimesTenのアップグレード」を参照してください。

## Oracleデータ・キャッシュ

Cache Connectを使用すると、TimesTenをOracleデータベースのキャッシュとして使用できます。この機能を使用することで、TimesTenアプリケーションではより簡単に、頻繁に使用されるデータやより重要なデータを1つ以上のTimesTenのコピーに保存し、残りの大量のデータをより低速なディスク・ベースのデータベースに保存することができます。Cache Connectは、OracleデータベースからTimesTenに、そしてTimesTenからOracleデータベースにトランザクションを自動的に伝播するように構成できます。TimesTenのキャッシュ容量を超えると、キャッシュされているデータが自動的にエージ・アウトされます。

Cache Connectについては、「Cache Connect to Oracle」を参照してください。

## 問合せの最適化

他の多くのデータベース・システムと同様に、TimesTenには、表の順序やアクセス方法の選択などの要素に基づいて最適な問合せ計画を選択する、コスト・ベースの問合せオプティマイザが備わっています。

メイン・メモリー・システムのコスト構造は、ディスク・アクセスが主要なコスト要素であるディスク・ベース・システムのコスト構造とは異なるため、TimesTenでは、オプティマイザのコスト感度がディスク・ベース・システムよりも少し高くなります。TimesTenではディスク・アクセスが要素とならないため、ディスク・ベース・システムのオプティマイザでは考慮されない要素（条件を評価するコストなど）が、最適化コスト・モデルに含まれます。

TimesTenは、2種類の索引（ハッシュとTツリー）を提供し、2種類の結合方法（ネステッド・ループとマージ結合）をサポートします。オプティマイザは、必要に応じて、処理中に一時索引を作成する場合があります。

また、TimesTenオプティマイザが受け入れるヒントによって、一時領域の使用とパフォーマンスのような要因間でバランスを取る柔軟性が、アプリケーションに与えられます。

TimesTenの問合せオプティマイザと索引付け方法の詳細は、「問合せの最適化」を参照してください。

## 同時実行性

TimesTenでは、すべてのデータベース・システムと同様に、共有データ・ストアを完全にサポートします。ただし、多くのシステムとは異なり、TimesTenではいくつかのオプションを提供しており、ユーザーはこのオプションを使用して、システムのレスポンス時間、スループット、およびトランザクション・セマンティクスでの最適なバランスを決定できます。たとえば、データ・ストア、表、または行へのアクセスをシリアライズして、パフォーマンスを改善できます。

きわめて厳密なトランザクション・セマンティクスを持つデータ・ストアに対しては、コミット読取り分離レベルを使用できます。デフォルトのコミット読取り分離レベルは、非ブロッキング処理を実現します。これらの分離レベルは、ODBC標準に準拠し、最適なパフォーマンスを考慮して実装されているため、可能な場合はデータのコピーは回避されます。ODBC標準で定義されるように、実行時に各接続に対して動的に変更できるTimesTenデータ・ストアに、デフォルトの分離レベルを設定できます。

最後に、TimesTenは1つ以上のプロセッサを持つマシンで動作します。使用可能なプロセッサ数に応じて、スループットに対するレスポンス時間のバランスを取るようにTimesTenを構成できます。

TimesTenにおける同時操作の管理の詳細は、「同時操作」を参照してください。

## 管理とユーティリティ

TimesTenでは、対話型SQL、バックアップとリストア、コピー（異なるデータベース・システム間のデータのコピー）、移行（異なるバージョンのTimesTen間のデータ移動のための高速コピー）など、典型的なデータベース・ユーティリティをサポートします。

他の多くのデータベース・システムと同様に、索引の作成や表の変更など、他の多くの管理作業に対してSQLによる構成が使用可能です。また、TimesTenはSQLによる構成を使用して、レプリケーション、Cache Connect、マテリアライズド・ビューを設定します。Cache Connectの設定ではWebベースの管理も有効です。

TimesTen組込みプロシージャとC言語関数は、TimesTenの操作と設定に対してプログラム制御を可能にします。TimesTenコマンドライン・ユーティリティによって、ユーザーは接続、ロック、レプリケーションなどの状態を監視できます。また、TimesTenスキーマのシステム表に対してSQL SELECT問合せを使用することによって、それらの状態を取得することもできます。たとえば、TimesTenのMONITOR表は、TimesTenアプリケーションの分析やデバッグに使用できる多くの統計情報を記録します。

TimesTen管理の詳細は、「TimesTenの管理」を参照してください。