- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ROWNUMについて)
OracleでROWNUMを使用すると処理速度はアップするのでしょうか?
このQ&Aのポイント
- OracleのROWNUMを使用すると処理速度が向上するのかについて調査しました。具体的な比較を行い、結果を報告します。
- ROWNUMを使用するクエリと未使用のクエリの処理速度を比較しました。その結果、ROWNUMを使用したクエリの方が遅いという結果が得られました。
- SQL初心者の方からの質問。ROWNUMを使用すると処理速度が上がるのか気になるとのことです。実際に試した結果や調査結果を教えていただけると助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
rownumはselectをした際に割り振りされる仮想列です。 ですので、Where句として指定してもrownum単体の条件では索引は使われません。ですので指定したからといって単純に速くなることはありません。 しかし、Web等で1~100件、101件から200件というようにクエリから 返ってくる件数を制限するような用途では効果があります。 何万件ものデータを取得してから100件を表示するのと、 データを100件だけ取得して表示するのでは大きな違いです。 つまり、取得件数を制限することで、転送・メモリを節約する用途では効果があるということです。 あとは、単に連番が振りたいだけとか。 気をつける必要があるのは、selectした順に振られるということは、Order byで並び順を指定しないと結果が異なってしまいます。
お礼
とても分かりやすいご説明ありがとうございます。 すごくためになりました。 単純に速くなるとも限らないみたいですね!! 色々試行錯誤してやってみます。 ありがとうございました。