繁体   English   中英

Oracle查询/ SQL调优

[英]Oracle Query/SQL tuning

我有一个表,该表包含总计198695条记录和96579条记录,其中project_id = 555。 我有列表间隔按project_id对表进行了分区。 如果我运行以下查询(无区别),则需要0.75秒才能运行。

SELECT  KW,SEARCH_VOLUME,TARGET_URL,KEYWORD_TYPE,RANK_DATE,RANK,URL,DOMAIN
from alps_project_theme_kw_v where  min_rank =1 and project_id = 555;

而如果我添加非重复并运行以下查询,则需要15秒才能运行

SELECT distinct KW,SEARCH_VOLUME,TARGET_URL,KEYWORD_TYPE,RANK_DATE,RANK,URL,DOMAIN
from alps_project_theme_kw_v where  min_rank =1 and project_id = 555;

目前,通过不同查询和非不同查询获取的结果是相同的(1636行),谁能建议我该如何进一步调整查询? 请注意:-我如上所述仅对project_id上的表进行了分区并对其进行了分析,尚未创建任何索引。

我建议在project_id上添加索引将大大减少执行时间。 如果您不想将索引添加到基本表中,请将o / p复制到临时表中,在临时表上创建索引,然后触发不同的查询,我敢说将比15秒更快。

    Use hints from oracle, 

    for e.g. SELECT /*+ INDEX(INDX1,IDX2) */ * FROM v;

    for fast retrieval of data use  

    SELECT /*+ FIRST_ROWS(100) */ * FROM v;


    try to use combination of column which are in same index 

Refer : 

    http://docs.oracle.com/cd/B19306_01/server.102/b14211/hintsref.htm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM