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

2回目はクエリの実行速度が速くなりますが、どうすれば停止できますか?

    パフォーマンスを測定するためにキャッシュをクリアすることは可能ですが、非常に扱いにくいです。

    チューニング作業の達成されたパフォーマンスを追跡するための非常に優れた手段は、クエリ実行中の読み取りブロックの数をカウントすることです。これを行う最も簡単な方法の1つは、次のようにautotraceでsqlplusを使用することです。

    set autotrace traceonly
    <your query>
    

    出力

    ...
    Statistics
    ----------------------------------------------------------
              0  recursive calls
              0  db block gets
              1  consistent gets
              0  physical reads
              0  redo size
            363  bytes sent via SQL*Net to client
            364  bytes received via SQL*Net from client
              4  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              1  rows processed
    

    キャッシュからでもディスクからでも、読み取られるブロックの数はconsistent getsです。 。

    もう1つの方法は、統計を増やして、つまりヒントgather_plan_statisticsを使用してクエリを実行することです。 次に、カーソルキャッシュからクエリプランを確認します。

    auto autotrace off
    set serveroutput off
    <your query with hint gather_plan_statistics>
    select * from table(dbms_xplan.display_cursor(null,null,'typical allstats'));
    

    読み取られたブロック数は、列buffersに出力されます。 。

    ---------------------------------------------------------------------------------------------------------------------
    | Id  | Operation        | Name           | Starts | E-Rows | Cost (%CPU)| E-Time   | A-Rows |   A-Time   | Buffers |
    ---------------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT |                |      3 |        |     1 (100)|          |      3 |00:00:00.01 |       3 |
    |   1 |  SORT AGGREGATE  |                |      3 |      1 |            |          |      3 |00:00:00.01 |       3 |
    |   2 |   INDEX FULL SCAN| ABCDEF         |      3 |    176 |     1   (0)| 00:00:01 |    528 |00:00:00.01 |       3 |
    ---------------------------------------------------------------------------------------------------------------------
    


    1. SQLデータベースから緯度と経度を使用して最寄りの場所を見つける方法は?

    2. コンポーネントのインストールの前提条件として、インストールされているOracleClientを確認する方法

    3. OracleのRRとYY

    4. オラクルのインデックスの種類?