查询缓慢记录以百万计

时间:2016-11-16 10:06:28

标签: oracle oracle11g query-optimization database-performance

我有以下查询,它处理Oracle DB中每个ent_data和ent_details表中的1000万条记录。

select val1.type,count(val1.type) 
  from ent_data val1 
       inner join ent_details az 
           ON val1.ENT_ID=az.ent_id 
          and val1.ENT_TYPE=az.ent_type 
          and val1.user_key=87
 group by val1.type;


----------------------------------------------------------------------------------------------------------------------------
 Operation                            | Name                        | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
----------------------------------------------------------------------------------------------------------------------------
   HASH GROUP BY                      |                             |     3 |   126 |       |   135K  (1)| 00:27:10 |
    FILTER                            |                             |       |       |       |            |          |
     HASH JOIN                        |                             |    10M|   413M|   305M|   134K  (1)| 00:26:56 |
      TABLE ACCESS FULL               | ent_details                 |    10M|   187M|       | 13116   (2)| 00:02:38 |
      TABLE ACCESS FULL               | ent_data                    |    10M|   226M|       | 89074   (1)| 00:17:49 |

执行上述查询大约需要27秒的时间在SQL Developer上执行,但由于获取的数据用于在UI上显示27秒,这是我无法忍受的。

我在ent_data表的Category,ENT_ID和ent_type列上有索引。另外,我在ent_details表的ent_id和ent_type列上有索引。

非常感谢有关如何改进查询性能的任何指导。

0 个答案:

没有答案