翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
スマートスキャン
Exadata は、データベース対応ストレージサブシステムを使用して、SQL 処理の一部をストレージセルサーバーに移動することで、データベースサーバーから処理をオフロードします。Exadata スマートスキャンは、オフロードされたフィルタリングと列射影によってデータベースサーバーに返されるデータの量を減らすことができます。この機能は、大規模なデータセットを処理する際の 2 つの主な課題を解決します。ストレージレイヤーからデータベースサーバーへの巨大で不要なデータの転送と、必要なデータのフィルタリングに費やされた時間とリソースです。スマートスキャンはセルオフロード処理の重要な機能であり、データファイルの初期化、HCC 解凍、その他の機能も含まれています。
Smart Scan からのデータフローをシステムグローバルエリア (SGA) バッファプールにバッファすることはできません。スマートスキャンには、プログラムグローバルエリア (PGA) にバッファされる直接パス読み取りが必要です。Smart Scan を使用するには、SQL ステートメントがいくつかの要件を満たしている必要があります。
-
SQL ステートメントによってクエリされるセグメントは、ASM ディスクグループ設定
cell.smart_scan_capable属性が に設定されている Exadata システムに保存する必要がありますTRUE。 -
フルテーブルスキャンまたはインデックス高速フルスキャンオペレーションを実行する必要があります。
-
SQL ステートメントに関係するセグメントは、直接パス読み取りオペレーション
を実行するのに十分な大きさである必要があります。
Exadata システムで Smart Scan の効率を評価するには、次の主要なデータベース統計を考慮する必要があります。
-
physical read total bytes– オペレーションがストレージサーバーにオフロードされたかどうかに関係なく、データベースによって発行された読み取りオペレーションの I/O バイトの合計量。これは、データベースサーバーから Exadata ストレージセルに発行された合計読み取りオペレーションをバイト単位で示します。この値は、ワークロードを調整せずに AWS に移行する際に、AWS のターゲットプラットフォームが満たす必要がある読み取り I/O 容量を反映します。 -
cell physical IO bytes eligible for predicate offload– Smart Scan に入力され、述語オフロードの対象となる読み取りオペレーションのバイト単位の量。 -
cell physical IO interconnect bytes– データベースサーバーとストレージセル間の相互接続を介して交換される I/O バイトの数。これには、スマートスキャンによって返されるバイト数、スマートスキャンの対象ではないクエリによって返されるバイト数、書き込みオペレーションなど、データベースとストレージノード間のすべてのタイプの I/O トラフィックが含まれます。 -
cell physical IO interconnect bytes returned by smart scan– スマートスキャンオペレーションのためにセルから返される I/O バイト。これはスマートスキャンの出力です。 -
cell physical IO bytes eligible for predicate offload– この値を物理的な読み取り合計バイト数と比較して、スマートスキャンの対象となる読み取り操作の合計数を把握できます。cell physical IO bytes eligible for predicate offload(スマートスキャンの入力) とcell physical IO interconnect bytes returned by smart scan(スマートスキャンの出力) の比率は、スマートスキャンの効率を示します。主に読み取りオペレーションを含む Exadata システムの場合、cell physical IO interconnect bytes returned by smart scanと の比率は Smart Scan への依存関係を示すcell physical IO interconnect bytesことができます。ただし、 にはコンピューティングサーバーとストレージサーバー間の書き込みオペレーション (ASM ミラーリングを使用) の 2 倍の数cell physical IO interconnect bytesも含まれているため、必ずしもそうとは限りません。
これらのデータベース I/O 統計V$ACTIVE_SESSION_HISTORY、V$SYSSTAT、、 などの基盤となる V$ ビューV$SQL。
次の例では、Exadata システムから収集された AWR レポートから、データベースは 5.7 Gbps の読み取りスループットを要求し、そのうち 5.4 Gbps がスマートスキャンの対象でした。スマートスキャン出力は、データベースとコンピューティングノード間の相互接続トラフィックの合計 395 MBps のうち 55 MBps に寄与しました。これらの統計は、スマートスキャンへの依存度が高い Exadata システムを指します。
V$SQL ビューの次の列を使用して、SQL レベルで Smart Scan の効率と依存関係を評価できます。
-
IO_CELL_OFFLOAD_ELIGIBLE_BYTES– Exadata ストレージシステムでフィルタリングできる I/O バイト数。 -
IO_INTERCONNECT_BYTES– Oracle データベースとストレージシステムの間で交換された I/O バイト数。 -
PHYSICAL_READ_BYTES– モニタリング対象の SQL によってディスクから読み取られたバイト数。
次のクエリ出力は、SQL ID を持つ SQL クエリの Smart Scan の利点を示していますxn2fg7abff2d。
select ROUND(physical_read_bytes/1048576) phyrd_mb , ROUND(io_cell_offload_eligible_bytes/1048576) elig_mb , ROUND(io_interconnect_bytes/1048576) ret_mb , (1-(io_interconnect_bytes/NULLIF(physical_read_bytes,0)))*100 "SAVING%" from v$sql where sql_id = 'xn2fg7abff2d' and child_number = 1; PHYRD_MB ELIG_MB RET_MB SAVING% ---------- ---------- ---------- ---------- 10815 10815 3328 69.2%
Smart Scan がワークロードに与える影響をテストするには、システム、セッション、またはクエリレベルで cell_offload_processingパラメータを FALSE に設定することで、この機能を無効にできます。たとえば、SQL ステートメントの Exadata Storage Server セルオフロード処理を無効にするには、以下を使用できます。
select /*+ OPT_PARAM('cell_offload_processing' 'false') */ max(ORDER_DATE) from SALES;
データベースセッションの Exadata Storage Server セルオフロード処理を無効にするには、次の Oracle データベース初期化パラメータを設定できます。
alter session set CELL_OFFLOAD_PROCESSING=FALSE;
Exadata データベース全体の Exadata Storage Server セルオフロード処理を無効にするには、以下を設定できます。
alter system set CELL_OFFLOAD_PROCESSING=FALSE;
への移行 AWS
ワークロードを最初に Exadata に移行するときは、スキーマインデックスを削除してフルテーブルスキャンを優先するなど、スマートスキャンを優先する一般的な方法として、いくつかの設計変更が実装されます。このようなワークロードを Exadata 以外のプラットフォームに移行する場合は、それらの設計変更を元に戻す必要があります。
Exadata ワークロードを に移行するときは AWS、スマートスキャンを使用するクエリのパフォーマンスを最適化するために、以下の調整アクションを検討してください。
-
メモリ最適化インスタンスを使用し、バッファヒット率を高めるためにより大きな SGA を設定します。
-
最適ではない実行プランで実行されるクエリを特定し、I/O フットプリントを削減するように調整します。
-
db_file_multiblock_read_countおよび などのオプティマイザパラメータを調整しoptimizer_index_cost_adjて、完全なテーブルスキャンを回避します。 -
適切な圧縮オプションを選択します。
-
必要に応じて追加のスキーマインデックスを作成します。