0

私は次のようにテーブルを作成しました

create table T1(num varchar2(20))

次に、上の表に3つのラック番号を挿入したので、以下のようになりました

num
1
2
3
.
.
300000

今私がするなら

select * from T1 

次に、レコードを完全にフェッチするのに1分15秒かかり、列にインデックスを作成したnumため、以下のクエリを使用すると、3つのlacレコードをフェッチする方が高速ですが、レコードをフェッチするのにも1分15秒かかります

select * from T1 where num between '1' and '300000'

では、インデックスによって検索プロセスがどのように改善されたのでしょうか?

4

3 に答える 3

2

すべての行をフェッチしようとしている場合、インデックスは取得プロセスを改善しません。

インデックスを使用すると、行のサブセットをより迅速に見つけることができます。

于 2013-08-03T15:29:42.417 に答える
1

大きなテーブルからいくつかの行を取得する場合は、インデックスが役立ちます。ただし、すべての行を取得し、インデックスにはテーブルのすべての列が含まれているため、クエリの速度は向上しません。

さらに、データを取得するために使用するツールを教えてくれません。SQL DeveloperまたはToadを使用していると思います。したがって、測定するのは、SQL Developer または Toad が 300,000 行をメモリに格納して、スクロール可能なテーブルで画面に簡単に表示できるようにするのにかかる時間です。それらを取得するのにかかる時間を実際に測定していません。

于 2013-08-03T15:30:19.473 に答える