7.3.3 列レベルのチェックサムを使用したスマート・スキャンの高速化

チェックサムの計算および検証は、データの格納または取得中に発生する可能性のあるエラーを検出するのに役立ちます。チェックサムは、データがExadataフラッシュ・キャッシュに書き込まれるときに計算され、後続の読取り時に検証されます。

Oracle Exadata System Softwareリリース19.1.0より前では、読取り後にフラッシュ上のブロックでチェックサムが計算されていました。通常、このブロックには複数の列が含まれますが、典型的なデータ・ウェアハウス問合せは表の一部の列にしかアクセスしません。Oracle Exadata System Softwareリリース19.1.0では、チェックサム計算の単位が1列に減っています。チェックサムは列ごとに計算され、列圧縮単位(CU)ヘッダーに格納されます。この最適化は、Exadataスマート・フラッシュ・キャッシュのインメモリー列形式でのみ有効です。

列レベル・チェックサムのアプローチの主な利点は、次のとおりです。

  • 選択的なチェックサム計算: 対象となる列を含むフラッシュ・ブロックがスマート・スキャンによって読み取られるとき、キャッシュ行に他の列が多数存在する場合でも、チェックサム検証は特定の列CUに対してのみ実行されます。そのため、チェックサムが実行されるデータ量が減り、CPU使用率が低くなります。たとえば、A < 5 and Z < 10という述語について考えてみます。列Aが存在するフラッシュ・ブロックには、列B、CおよびDを含まれる可能性があります。ただし、B、CおよびDは問合せで参照されていないため、B、CおよびDに対してチェックサムは実行されません。

  • Just in timeのチェックサム計算: チェックサムは列が処理される場合にのみ実行されます。たとえば、A < 5 and Z < 10という述語について考えてみます。チェックサムは列Aの列CUで計算され、述語が評価されます。述語A < 5を満たす行がない場合、Z < 10を評価する理由はありません。列Zの列CUに対してチェックサム計算は実行されません。そのため、チェックサムが実行されるデータ量が大幅に減り、CPU使用率が低くなります。

この機能は、INMEMORY_SIZEデータベース初期化パラメータを構成し、Oracle Exadata System Softwareリリース19.1.0にアップグレードすると自動的に有効になります。この機能を使用するために追加の構成は必要ありません。

詳細は、Oracle Exadata System Softwareユーザーズ・ガイドデータ検索および取得処理のオフロードを参照してください。

最小要件:

  • Oracle Exadata System Softwareリリース19.1.0
  • Exadataスマート・フラッシュキャッシュ
  • Oracle Database In-Memoryオプション