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

Oracle でのページクエリの速度

    ケース 2 の主な問題は、多くの場合、クエリ結果セット全体を取得して、前にソートする必要があることです。 最初の N 行を返すことができます。 ただし、ORDER BY 列にインデックスが付けられていて、Oracle がインデックスを使用してソートを回避できる場合を除きます。複雑なクエリと大規模なデータ セットの場合、これには時間がかかる場合があります。ただし、速度を改善するためにできることがいくつかあります:

    <オール>
  1. 内部 SQL で関数が呼び出されないようにしてください。これらの関数は、最初の 20 行を返すためだけに 500 万回呼び出される可能性があります。これらの関数呼び出しを外側のクエリに移動できれば、呼び出される回数は少なくなります。
  2. FIRST_ROWS_n ヒントを使用して、すべてのデータを返すことは決してないという事実に合わせて Oracle を最適化します。
  3. 編集:

    もう 1 つの考え:現在、可能なレポートをユーザーに提示しています。 数千または数百万の行を返しますが、ユーザーが実際にそれらすべてをページングすることは決してありません。より少量のデータを選択するように強制することはできませんか。選択した日付範囲を 3 か月 (またはその他) に制限することによって?



    1. MySqlはSQLServerのようなxmlをサポートしていますか?

    2. SQL:個々の結果行のグループ数

    3. Oracle UDTのカスタムタイプマッピングが指定されていないか、無効です

    4. AWSRDSバックアップメソッド