• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ROWNUMについて)

OracleでROWNUMを使用すると処理速度はアップするのでしょうか?

このQ&Aのポイント
  • OracleのROWNUMを使用すると処理速度が向上するのかについて調査しました。具体的な比較を行い、結果を報告します。
  • ROWNUMを使用するクエリと未使用のクエリの処理速度を比較しました。その結果、ROWNUMを使用したクエリの方が遅いという結果が得られました。
  • SQL初心者の方からの質問。ROWNUMを使用すると処理速度が上がるのか気になるとのことです。実際に試した結果や調査結果を教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • 3rd_001
  • ベストアンサー率66% (115/174)
回答No.1

rownumはselectをした際に割り振りされる仮想列です。 ですので、Where句として指定してもrownum単体の条件では索引は使われません。ですので指定したからといって単純に速くなることはありません。 しかし、Web等で1~100件、101件から200件というようにクエリから 返ってくる件数を制限するような用途では効果があります。 何万件ものデータを取得してから100件を表示するのと、 データを100件だけ取得して表示するのでは大きな違いです。 つまり、取得件数を制限することで、転送・メモリを節約する用途では効果があるということです。 あとは、単に連番が振りたいだけとか。 気をつける必要があるのは、selectした順に振られるということは、Order byで並び順を指定しないと結果が異なってしまいます。

smiyamoto777
質問者

お礼

とても分かりやすいご説明ありがとうございます。 すごくためになりました。 単純に速くなるとも限らないみたいですね!! 色々試行錯誤してやってみます。 ありがとうございました。

関連するQ&A