对表创建正确的索引可以加快查询速度。
一个小测试。
有一个表cpu_monitor有843240条记录,
SQL desc cpu_monitor;
Name
Null?
Type
----------------------------------------- -------- ----------------------------
SVRNAME
VARCHAR2(25)
RECDDATE
DATE
USR
NUMBER(10)
SYS
NUMBER(10)
WIO
NUMBER(10)
IDLE
NUMBER(10)
SQL select count(*) from cpu_monitor;
COUNT(*)
----------
843240
Elapsed: 00:00:06.47
对它以下面的SQL语句进行查询:select SVRNAME, count(*) counts from CPU_MONITOR
group by SVRNAME。
花去时间20.07秒
SQL select SVRNAME, count(*) counts from CPU_MONITOR
group by SVRNAME
2
;
SVRNAME
COUNTS
------------------------- ----------
app1
6713
dev
19297
***
****
*
*
*//省略
24 rows selected.
Elapsed: 00:00:20.07
对这个表建立索引:create index idx_cpu_monitor on CPU_MONITOR(SVRNAME);
不过这个索引却花了01:42.07分钟才建好。
SQL create index idx_cpu_monitor on CPU_MONITOR(SVRNAME);
Index created.
Elapsed: 00:01:42.07
对它以下面的SQL语句进行查询:select SVRNAME, count(*) counts from CPU_MONITOR
group by SVRNAME。
花去时间07.41秒。
SQL select SVRNAME, count(*) counts from CPU_MONITOR
group by SVRNAME
2
;
SVRNAME
COUNTS
------------------------- ----------
app1
6713
dev
19297
***
****
*
*
*//省略
24 rows selected.
Elapsed: 00:00:07.41
好了,目的达到了。节省了时间是:12秒多。