对表创建正确的索引可以加快查询速度。 一个小测试。 有一个表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秒多。
|