Upgrade to Pro — share decks privately, control downloads, hide ads and more …

本番環境への影響リスクが低い Real Application Testing (SQL Pe...

本番環境への影響リスクが低い Real Application Testing (SQL Performance Analyzer) の実施方法の検討と実践

JPOUG Tech Talk Night #13 (2025/5/22) の発表資料です

Avatar for Yuichiro Narita

Yuichiro Narita

May 18, 2025
Tweet

Other Decks in Technology

Transcript

  1. Copyright (c) The Japan Research Institute, Limited 2/11 自己紹介 ⚫

    成田 裕一郎 (なりた ゆういちろう) ⚫ 所属 ✓ 株式会社日本総合研究所 技術統括部 Database Architectチーム • 三井住友フィナンシャルグループ (SMBCグループ) の一社 • シンクタンク部門、コンサルティング部門、ITソリューション部門で構成 • ITソリューション部門は三井住友フィンシャルグループ各社のシステム企画・開発・運用管理業務など、事業戦略をITで実現 • 技術統括部は技術戦略の立案、開発標準化の企画・推進などがミッション ⚫ 略歴 ✓ 2012年度入社、三井住友銀行の情報系システムを担当 (保守開発、更改、新規構築) ✓ 2023年度から現職、Oracle Database と PostgreSQL の開発標準化、技術相談、スキルトランスファーなどに従事 ⚫ その他 ✓ Qiitaアカウント → jri_narita • 昨年度全然投稿できなかったので今年度はがんばります… ✓ SpeakerDeckアカウント → jri_narita (Display Name: Yuichiro Narita) JPOUG Tech Talk Night #13 デジタル名刺→ (有効期限あり)
  2. Copyright (c) The Japan Research Institute, Limited 3/11 アジェンダ ⚫そもそも

    Real Application Testing とは? ⚫SQL Performance Analyzer の基本的な流れと気になる箇所 ⚫実践 ⚫まとめ JPOUG Tech Talk Night #13 デジタル名刺→ (有効期限あり)
  3. Copyright (c) The Japan Research Institute, Limited 4/11 そもそも Real

    Application Testing とは? ⚫ Real Application Testing (RAT) はオラクルのテストソリューション、大きく SQL Performance Analyzer (SPA) と DB Replay にわけられる ⚫ RU適用後のテスト品質向上を目的に SPA を推進予定 JPOUG Tech Talk Night #13 出所:Oracle Database Real Application Testing入門 (SpeakerDeck / oracle4engineer) https://speakerdeck.com/oracle4engineer/oracle-database-real-application-testingru-men?slide=6 デジタル名刺→ (有効期限あり)
  4. Copyright (c) The Japan Research Institute, Limited 5/11 SPA の基本的な流れと気になる箇所

    (1) ⚫ 本番環境で用意した SQL Tuning Set (STS) を開発環境に持ち込み SPA を実行、レポート作成・分析と対処が基本的な流れ ⚫ STS は SYSAUX表領域を使用。使用率が100%になってもクリティカルな影響はないが、不用なトラブルは避けたいところ JPOUG Tech Talk Night #13 Instance Database Datafiles SYSAUX STS SGA Shared pool Library Cache 本番環境 開発環境 STS の用意 SPA の実行 レポートの作成・分析と対処 STS.dmp SQL Load Expdp • STS取得時のCPU平均使用率は、0.1%の誤差 • CPU使用率にスパイクが出て、瞬間的に上がる動きもなし • スループット比較でもSTS取得時のオーバーヘッドはほとんどなし • 多くのSQLを格納すると、SYSAUXが肥大化するため、事前に サイジングを行う必要がある • SQL情報をSTSへ格納する際、不用なSQLを除外するため、 フィルタリングの設計を行うことが重要 出所:Oracle Real Application Testing (SpeakerDeck / oracle4engineer) https://speakerdeck.com/oracle4engineer/ oracle-real-application-testing?slide=23 デジタル名刺→ (有効期限あり)
  5. Copyright (c) The Japan Research Institute, Limited 6/11 SPA の基本的な流れと気になる箇所

    (2) ⚫ STS の取得元は AWR または SQLトレースに変更することが可能 ⚫ STS が使用する表領域は SYSAUXから変更不可 JPOUG Tech Talk Night #13 Instance Database Datafiles SYSAUX STS SGA Shared pool Library Cache 本番環境 開発環境 STS の用意 SPA の実行 レポートの作成・分析と対処 STS.dmp Expdp AWR SQL Trace Load SQL SQL デジタル名刺→ (有効期限あり)
  6. Copyright (c) The Japan Research Institute, Limited 7/11 SPA の基本的な流れと気になる箇所

    (3) ⚫ 本番環境の AWR を開発環境に移行し、本番環境の SYSAUX表領域を使用しない貌で以降の流れを開発環境で実施できるか試行してみる JPOUG Tech Talk Night #13 Instance Database Datafiles SYSAUX STS SGA Shared pool Library Cache 本番環境 開発環境 STS の用意 SPA の実行 レポートの作成・分析と対処 AWR AWR.dmp awrextr SQL デジタル名刺→ (有効期限あり)
  7. Copyright (c) The Japan Research Institute, Limited 8/11 実践 (1)

    ⚫ OracleDB 19c をインストールした環境を2つ用意 (Docker Desktop を使用) ⚫ 最終アウトプットであるレポートを比較し、ベースライン情報が変わっていたり欠けていたりすることがないか確認 JPOUG Tech Talk Night #13 AWRを開発環境に移行した際のSPAの流れ AWRを利用したSPAの基本の流れ 本番環境想定/ORCLPDB11 開発環境想定/ORCLPDB21 awrextr Load Expdp awrload Load Impdp SPA 比較 STS AWR STS.dmp AWR.dmp STS AWR レポート レポート' STS' デジタル名刺→ (有効期限あり) SPA SQL SQL
  8. Copyright (c) The Japan Research Institute, Limited 9/11 実践 (2)

    ⚫ ★を付けた項目がベースライン情報であり、差がないことを確認 ⚫ ★を付けていない項目はそれぞれの流れの中でSQLが実行された時の情報であり、差があるのは想定内 JPOUG Tech Talk Night #13 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ デジタル名刺→ (有効期限あり)
  9. Copyright (c) The Japan Research Institute, Limited 10/11 実践 (3)

    JPOUG Tech Talk Night #13 ★ ★ ★ デジタル名刺→ (有効期限あり) ★ ★ ★
  10. Copyright (c) The Japan Research Institute, Limited 11/11 まとめ ⚫

    SPA を実施するにあたり本番環境の SYSAUX表領域を使用しないようにするために、AWR を開発環境に移行して STS の取得元とするのは有効 ⚫ 注意点:同じ DBID (≒SID) のAWRダンプをインポートすることができない ✓ FYI: 'ORA-20103: Data has conflict, please use a new dbid' When Importing AWR Data To The Same Database After 18c Upgrade (ドキュメントID 2547548.1) ✓ NEWIDユーティリティで DBID (SID) を変更するのはアプリケーションなどに影響大 ✓ ※のように異なる DBID (SID) のインスタンスに AWR を移行し STS を作成、以降を基本の流れと同様に実施すれば可能か (要検証) ⚫ 想定ユースケース ✓ カーソルキャッシュや SQLトレースをSTSの取得元とした場合と比べて、テストできるSQLの網羅性は低いため※※、恒久的なやり方としてはオススメできない ✓ SYSAUX表領域をどれぐらい使用するのかの参考値 (下限値) とするのが良さそう JPOUG Tech Talk Night #13 本番環境 hogeインスタンス AWR 開発環境 hogeインスタンス AWR fugaインスタンス AWR STS STS デジタル名刺→ (有効期限あり) ※ ※※ 出所:Oracle Real Application Testing (SpeakerDeck / oracle4engineer) https://speakerdeck.com/oracle4engineer/oracle-real-application-testing?slide=22