11.7.1 Exadataスマート・フラッシュキャッシュ
Exadataスマート・フラッシュキャッシュにより、各Exadataセル上で頻繁にアクセスされるデータ用にキャッシュ・メカニズムが提供されます。このキャッシュは、ランダムな反復読取りを処理するのに役立つライトスルー・キャッシュであり、オンライン・トランザクション処理(OLTP)に非常に適しています。これにより、表または索引レベルでデータベース側のSTORAGE句のヒントを使用して、KEEP
モードでデータをキャッシュするメカニズムが提供されます。フラッシュ・ディスクのExadataスマート・フラッシュキャッシュ領域は、起動時にExadataセルに自動的に作成されます。
Oracle Exadata Storage Serverには、従来の回転型のハード・ディスクに加え、高性能なフラッシュ・ディスクが搭載されています。これらの高性能なフラッシュ・ディスクを使用して、Exadataグリッド・ディスクを作成し、頻繁にアクセスされるデータを格納できます。この場合、ユーザーは、正確な領域プランを作成して、性能のよいディスクに最もアクティブな表領域を配置する必要があります。推奨オプションとして、Exadataスマート・フラッシュキャッシュ用にフラッシュ・ディスク領域の一部または全部を提供できます。この場合、回転ディスク上で最も頻繁にアクセスされるデータは、高性能なフラッシュ・ディスクのExadataスマート・フラッシュキャッシュ領域に自動的にキャッシュされます。データベースがこのようなデータにアクセスする必要がある場合、Oracle Exadata Storage Serverでは、データを遅い回転ディスクから取得するかわりに、Exadataスマート・フラッシュキャッシュからフェッチします。
パーティションや表がデータベースによってスキャンされる場合、オブジェクトにCELL_FLASH_CACHE
属性が設定されていれば、Exadata Storage Serverでは、Exadataスマート・フラッシュキャッシュからスキャン対象のデータをフェッチできます。また、Exadata Storage Serverでは、Exadataフラッシュキャッシュからデータを提供する以外に、ハード・ディスクからスキャン対象のオブジェクトをフェッチすることもできます。
Exadata Storage ServerによってExadataスマート・フラッシュキャッシュおよびハード・ディスクからスキャン・データをフェッチする場合、そのパフォーマンスは加算的です。Exadata Storage Serverでは、Exadataスマート・フラッシュキャッシュの最大帯域幅とハード・ディスクの最大帯域幅を使用してオブジェクトをスキャンできるため、双方からの同時スキャン中は最大帯域幅が加算されます。
Oracle DatabaseとExadataスマート・フラッシュキャッシュ・ソフトウェアは、相互に緊密に連携して動作します。データベースでは、Oracle Exadata Storage Serverに読取りまたは書込みリクエストを送信する際に、そのデータが再度アクセスされる可能性があるかどうかと、そのデータをキャッシュする必要があるかどうかに関する追加情報をリクエストに含めます。たとえば、ログ・ファイルやミラー・コピーにデータを書き込む場合、データベースではキャッシュを省略するようヒントを送信します。表の索引を読み取る場合、データベースではそのデータをキャッシュするようヒントを送信します。この連携動作により、最も頻繁にアクセスされるデータのみが格納されるようにExadataスマート・フラッシュキャッシュ領域の使用が最適化されます。
ユーザーは、他のデータベース・オブジェクトよりも優先的にキャッシュするオブジェクト(表領域や表など)と、まったくキャッシュしないオブジェクトについてより詳細に制御できます。この制御を行うには、データベース・オブジェクトに割当て可能な、STORAGE句の新規属性であるCELL_FLASH_CACHE
を使用します。
たとえば、Exadataスマート・フラッシュキャッシュにCALLDETAIL
表を確保する場合、次のコマンドを使用します。
ALTER TABLE calldetail STORAGE (CELL_FLASH_CACHE KEEP)
Exadata Storage Serverでは、CALLDETAIL
表のデータを優先的にキャッシュし、そのデータを他の表のキャッシュ・データよりも長い間Exadataスマート・フラッシュキャッシュに保持するよう試みます。CALLDETAIL
表が複数のOracle Exadata Storage Serverに分散されている場合、それぞれ独自のExadataスマート・フラッシュキャッシュに表の一部がキャッシュされます。キャッシュのサイズが十分であれば、多くの場合、CALLDETAIL
表は一定期間にわたり完全にキャッシュされます。