sql >> データベース >  >> RDS >> Oracle

Oracleアプリr12でトレースを有効にする方法

    • ユーザーは、OracleAppsアプリケーションのさまざまなページでパフォーマンスの問題が発生することがあります。ボトルネックを特定するには、問題のトレースを取得する必要があります
    • 以下の手順を実行して、問題のデータベースレベルのトレースを生成し、原因のSQLまたはステートメントを見つけることができます。 OracleAppsr12でトレースを有効にする方法は次のとおりです

    目次

    セルフサービスページのトレースを取得する方法

    (1)プロファイルFNDを設定します:ユーザーレベルで診断=はい。
    (2)そのユーザーとしてパーソナルホームページにログインし、ページ上部の診断リンクを選択します。
    (3)を選択します。トレースレベルを設定して[実行]をクリックします。
    (4)目的のトレースレベルを選択して[保存]をクリックします。
    (5)トレースID番号を書き留めます。
    (6)アクティビティを実行します。トレースするもの。
    (7)[診断]ページに戻ります。
    (8)[トレースレベルの設定]を選択し、[実行]をクリックします。
    (9)[トレースの無効化]を選択します。 [Go]をクリックします。
    (10)異なる場合はトレースID番号を書き留めます。
    (11)データベースのdiagnostics_destに移動し、トレースIDで生のトレースファイルのサフィックスを収集します。記録した番号。
    (12)アプリケーションを終了

    Oracleアプリr12でフォームのトレースを有効にする方法

    (1)プロファイルFNDを設定します:診断=ユーザーレベルではい。
    (2)アプリケーションにログインします
    (3)トレースするフォームに移動します
    (4)回しますメニューオプションを使用したトレースの場合:[ホーム]>[診断]>[トレース]>[待機ありのトレース]
    (5)トレースファイルの名前と場所を示すポップアップが表示されます。トレースファイル名を書き留めます
    (6)トレースするアクティビティを実行します。
    (7)ホームに戻る>診断>トレース>
    (8)[トレースを無効にする]を選択し、移動します。
    (9)データベースのdiagnostics_destに移動し、記録したトレースID番号で生のトレースファイルのサフィックスを収集します。
    (10)アプリケーションを終了します

    OracleConcurrentProgramのトレースを取得する方法

    1. コンカレントに移動>プログラム>画面の定義
    2. トレースする並行プログラムを検索します
    3. [トレースを有効にする]チェックボックスをオンにして、並行プログラムのトレースをオンにします
    4. 並行プログラムを送信して実行する
    5. 並行プログラムジョブのrequest_idを書き留めます
    6. [定義]画面に戻り、この並行プログラムの[トレースを有効にする]チェックボックスをオフにします
    7. request_idを使用して生のトレースファイルを取得します
    column traceid format a8
    column tracename format a80
    column user_concurrent_program_name format a40
    column execname format a15
    column enable_trace format a12
    set lines 80
    set pages 22
    set head off
    SELECT 'Request id: '||request_id ,
    'Trace id: '||oracle_Process_id,
    'Trace Flag: '||req.enable_trace,
    'Trace Name:
    '||dest.value||'/'||lower(dbnm.value)||'ora'||oracle_process_id||'.trc',
    'Prog. Name: '||prog.user_concurrent_program_name,
    'File Name: '||execname.execution_file_name|| execname.subroutine_name ,
    'Status : '||decode(phase_code,'R','Running')
    ||'-'||decode(status_code,'R','Normal'),
    'SID Serial: '||ses.sid||','|| ses.serial#,
    'Module : '||ses.module
    from apps.fnd_concurrent_requests req, v$session ses, v$process proc,
    v$parameter dest, v$parameter dbnm, apps.fnd_concurrent_programs_vl prog,
    apps.fnd_executables execname
    where req.request_id = &request
    and req.oracle_process_id=proc.spid(+)
    and proc.addr = ses.paddr(+)
    and dest.name='user_dump_dest'
    and dbnm.name='db_name'
    and req.concurrent_program_id = prog.concurrent_program_id
    and req.program_application_id = prog.application_id
    and prog.application_id = execname.application_id
    and prog.executable_id=execname.executable_id;

    実行中の同時リクエストのトレースを有効にする方法

    以下のクエリを実行して、同時リクエストのSPIDとSIDを見つけます

    col addr format a11
    col program format a20 trunc
    col logon_time format a18
    col osuser format a8 heading unixUsr
    col p_user format a9 heading unixUsr
    col terminal format a7 heading unixtrm
    col command format 99 heading Cd
    col machine format a7
    col action format a10
    col module format a10
    col requestor format a20
    col cmgr_job format a38 trunc heading 'CMgr_job'
    set pagesize 24
    Prompt Enter the Concurrent Request ID number:
    select s.inst_id, fcr.request_id, fv.requestor, fv.Program cmgr_job,
    p.PID,
    p.SERIAL#,
    p.USERNAME p_user,
    p.SPID,
    to_char(s.logon_time,'DD-MON-YY HH24:MI:SS') Logon_Time,
    s.program,
    s.command,
    s.sid,
    s.serial#,
    s.username,
    s.process,
    s.machine,
    s.action,
    s.module
    from apps.fnd_concurrent_requests fcr,
    apps.FND_CONC_REQ_SUMMARY_V fv,
    gv$session s,
    gv$process p
    where fcr.request_id = &request_id
    and p.SPID = fcr.oracle_process_id
    and s.process = fcr.OS_PROCESS_ID
    and s.inst_id = p.inst_id
    and p.addr = s.paddr
    and fv.request_id = fcr.request_id
    ;

    これで、oradebugまたはDBMSプログラムを使用してSIDのトレースを有効にできます

    SQL> oradebug setospid 1111
    SQL> oradebug event 10046 trace name context forever, level 12
    LEVEL 12 – Both Binds and Waits
    LEVEL 8 – Only WAITS
    LEVEL 4 – Only BIND Variables
    SQL>oradebug tracefile_name
    prod _ora_1111.trc
    Wait for 15-20 minutes
    SQL> oradebug event 10046 trace name context off

    DBMSプログラムの使用

    Full level with wait event And bind trace

    execute dbms_system.set_ev(‘sid’,’serial’,10046,12,’’);

    To put trace off

    execute dbms_system.set_ev(‘sid’,’serial’,10046,0,’’);
    を実行します。

    トレースファイルの分析方法

    トレースファイルが見つかったら、tkprofユーティリティを使用して、トレースファイルから原因ステートメントを見つけることができます

    tkprof XPROD_ora_19005_a.trc XPROD_ora_19005_a.txt sys=no explain=apps/apps sort=prsela,exeela,fchela

    関連記事
    SQLトレース:SQLトレースまたは10046イベントを使用して、Oracleのセッションアクティビティをトレースしています。 SQLトレースによって生成される出力は、trcsess、tkprofユーティリティを使用してフォーマットされます。
    オラクルのオートトレース:オラクルのオートトレース、オートトレースとは、その設定方法、オートトレース出力の理解、オートトレースオプション、オートトレースによって表示される統計
    sql Tuning Advisor:カーソルキャッシュでsql_idのsql Tuning Advisorを実行する方法、推奨を取得するためにsql Tuningタスクを作成および実行する方法
    Hanganalyze:Oracleでシステム状態ダンプを取得する方法を確認し、Oracleでhanganalyze 、v $ wait_chainsとは何か、およびブロッキングの検出にどのように役立つか
    Oracle AppsでFRDトレースを生成する方法:Oracle Apps 11i /R12でFormsランタイム診断トレースを生成する方法
    FAQ:一般的なトレース手法Oracle E-Business Applications 11iおよびR12(Doc ID 296559.1)


    1. パンダ:ファイルの読み取りと書き込みの方法

    2. SQL Serverで時間を比較するにはどうすればよいですか?

    3. 類似の文字列を含むSQLレコードを検索する

    4. ExcelデータをMySQLデータベースにインポートする方法を学ぶ