
OracleでROWNUMを使用すると処理速度はアップするのでしょうか?
(例)TESTテーブル(PK:KOJIN_NO)には、10万件
(1)ROWNUM 使用
SELECT
KOJIN_NO, SHIMEI
FROM
TEST
WHERE
KBN = 1
ROWNUM < 101
(2)ROWNUM 未使用
SELECT
KOJIN_NO, SHIMEI
FROM
TEST
WHERE
KBN = 1
この場合、(1)と(2)ではやっぱり(1)の方が処理速度は速いのでしょうか?
実際、試したところROWNUMを使用したSQLの方が遅い気がしました。
SQL初心者なので、詳しく分かりません。
お願い致しますm(__)m
No.1ベストアンサー
- 回答日時:
rownumはselectをした際に割り振りされる仮想列です。
ですので、Where句として指定してもrownum単体の条件では索引は使われません。ですので指定したからといって単純に速くなることはありません。
しかし、Web等で1~100件、101件から200件というようにクエリから
返ってくる件数を制限するような用途では効果があります。
何万件ものデータを取得してから100件を表示するのと、
データを100件だけ取得して表示するのでは大きな違いです。
つまり、取得件数を制限することで、転送・メモリを節約する用途では効果があるということです。
あとは、単に連番が振りたいだけとか。
気をつける必要があるのは、selectした順に振られるということは、Order byで並び順を指定しないと結果が異なってしまいます。
とても分かりやすいご説明ありがとうございます。
すごくためになりました。
単純に速くなるとも限らないみたいですね!!
色々試行錯誤してやってみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracleのビュー作成時に「指定...
-
ROWNUMについて
-
ACCESS検索★ある文字を複数のフ...
-
Accessでテーブル名やクエリ名...
-
「直需」の意味を教えてください
-
【Access】フォームで自動計算...
-
Excel 2019 のピボットテーブル...
-
テーブルの存在チェックについて
-
Oracle 2つのDate型の値の差を...
-
Vbaでアクセスからエクセルにリ...
-
ACCESSでテーブルのチェックを...
-
再計算って出来ますか?
-
Accessのフィールド数が255しか...
-
ACCESSのクエリで集計で、先頭...
-
Access クロス集計クエリについて
-
【続続】Access2002で連番のつ...
-
accsessで顧客コードで氏名を呼...
-
Countと受付状態の表示に...
-
カウントが出来ません
-
どれがPrimary Key、ForeignKey...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Oracleのビュー作成時に「指定...
-
DB2でREPLACEによる文字列の置換
-
ORACLEで一番最初の結果だけを...
-
ROWNUMについて
-
Oracle SQLにて固定長でデータ...
-
ある値以上の空き番の最小値を...
-
抽出結果を1件ずつ次の抽出条件...
-
WITH句で複数テーブルを定義す...
-
P/L SQLで値が更新されない。
-
動的SQLでのDECODE
-
VBAのRows.Selectについて
-
SQL文の書き方
-
SQL 計算
-
ACCESS クエリーから件数取得
-
最大値の抽出
-
時間の重複を加味した連続時間S...
-
group by でselect
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
Accessでテーブル名やクエリ名...
おすすめ情報