A little test for index
2024-07-21 02:38:02
供稿:網友
 
             
  對表創建正確的索引可以加快查詢速度。
  
  一個小測試。
  
  有一個表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秒多。