[英]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.