0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Oracle Analytics Cloud:利用状況を把握する ~活用編~

Last updated at Posted at 2022-02-14

はじめに

Oracle Analytics Cloud:利用状況を把握する ~準備編~という記事で、Oracle Analytics Cloud(OAC)のUsage Trackingの設定方法を紹介しました。
こちらの記事では、収集したログの活用を目指してみたいと思います。

Usage Tracking表(論理SQLログ)の列の説明(抜粋)

  • START_TS
    • 論理問合せが送信された日時を示します。
  • END_TS
    • 論理問合せの完了日時を示します。ユーザが問合せを終了する前にそのページから移動した場合、最終フェッチは発生せず、タイムアウト値(3600)が記録されます。 ただし、ユーザがタイムアウト前にそのページに戻ると、フェッチはその時点で完了し、end_ts時間として記録されます。
  • TOTAL_TIME_SEC (Responce Time)
    • クエリの開始からPresentationサーバによるデータのフェッチの開始までの時間です。Elapced Time(START_TSからEND_TSまでの所要時間)とResponce Timeに相違がある場合、それは通常、全行のフェッチに必要な時間によるものです。検索結果は全行のフェッチを待たずに描画されることがあります。
  • COMPILE_TIME_SEC
    • BIサーバがデータをコンパイルして送信する時間です。
  • CUM_DB_TIME_SEC
    • バックエンド物理データベースを待機した合計時間(秒単位)です。物理クエリが複数に分割された場合は、その合計待機時間です。

ドキュメント:使用状況トラッキング表の理解

一般的な指針および傾向

DBサーバに負荷をかけているクエリを見つける

  • CUM_DB_TIME_SECの値が大きいクエリ
  • TOTAL_TIME_SECとCUM_DB_TIME_SECの値が近いクエリ
    • ほとんどの時間がバックエンドのDBを待機した時間

BIサーバに負荷をかけているクエリを見つける

  • COMPILE_TIME_SECの値が大きなクエリ
    • 「コンパイルに時間がかかっている=複雑な論理SQL」である可能性が高い
    • クエリを複数に分割したり、表現方法を単純化することで負荷軽減の可能性がある

OACでUsage Tracking表を検索

今回、データはAutonomous Data Warehouse(ADW)に保管されるように設定してあります。
ADWへの接続定義を設定する方法は、こちらを参考にしてください。

Oracle Analytics Cloud:はじめてのビジュアライゼーション

LOGCALQUERIES表をドラッグ&ドロップで選択し、データセットとして保存します。
image.png

保存したデータセットを使用してワークブックを新規に作成します。
コントロールキーを押しながら、「START_DT」「TOTAL_TIME_SEC」「COMPILE_TIME_SEC」「CUM_DB_TIME_SEC」「SAW_SRC_PATH」の5つを選択します。
そのままの状態で右クリックし、「ビジュアライゼーションの選択」をクリックします。
image.png
「表」をクリックします。
image.png
COMPILE_TIME_SECで降順にソートします。
image.png

QUERY_SRC_CDで「Report」のみにフィルタすると、アンサーレポートのログのみを表示できます。

問題のあるクエリの候補を探す

image.png
上の2つのクエリ(アンサーレポート)は、いずれもCOMPILE_TIME_SECとTOTAL_TIME_SECが同じ数値で、CUM_DB_TIME_SECは小さくなっています(秒単位なので0秒と表示されています)。
これは、バックエンドのDBにクエリを発行する前に時間がかかっていることを示しており、DB側は瞬時に結果を返していることがわかります。

COMPILE_TIME_SECの数値が大きなアンサーレポート

1番上のアンサーレポートを開いてみます。
image.png
FORECAST関数を使用した6期間先までの予測を含んだグラフでした。
非表示のビューや除外されている列があれば、削除してみましょう。

CUM_DB_TIME_SECの数値が大きなアンサーレポート

3番めのアンサーレポートを見てみると、CUM_DB_TIME_SECつまりDBでの処理時間の合計が11秒であることがわかります。
一方、TOTAL_TIME_SECは2秒です。
image.png
これは、このアンサーレポートの実行時に物理的なSQLが複数に分割され、それぞれの物理SQLの合計が11秒であったことがわかります。
image.png

このアンサーレポートを開いてみます。
image.png
選択ステップと階層列を使用したレポートでした。

物理SQLの確認

選択ステップと階層列を使用したレポートが、バックエンドのDBにどのような物理SQLを発行しているのかを確認したいと思います。

データセットの拡張

「データ」に移動し、データセットの編集アイコンをクリックします。
image.png
データセット編集用にブラウザの新しいタブが開きます。
「結合ダイアグラム」タブに移動します。
image.png
「自動結合表」をオフにして、「PHYSICALQUERIES」表をドラッグ&ドロップします。
image.png
取り込んだ「PHYSICALQUERIES」表を「LOGICALQUERIES」表の上にドラッグ&ドロップします。
image.png
結合条件を設定するために、2つの表を間のアイコンをクリックします。
image.png
LOGICALQUERIES表の ID 列とPHYSICALQUERIES表の LOGICAL_QUERY_ID 列で結合します。
image.png
データセットを保存します。
image.png
ワークブックのタブに戻り、「ビジュアル化」に移動します。
image.png

物理SQLの確認

物理SQLを確認するアンサーレポートを右クリックし、メニューから「選択項目の保持」をクリックします。
image.png
PHYSICALQUERIESを展開し、「QUERY_TEXT」をドラッグ&ドロップで表に含めます。
image.png
分割実行された物理SQLを確認することができました。
image.png

ダッシュボードを作ってみる

こちらの記事も参考にしてみてください。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?