首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle中的索引for JOIN似乎不会提高性能

Oracle中的索引for JOIN似乎不会提高性能
EN

Stack Overflow用户
提问于 2017-05-07 08:32:05
回答 1查看 691关注 0票数 0

我正在尝试使用索引来提高查询性能:

代码语言:javascript
复制
SELECT E.CLIENT, E.TITLE                     
FROM (SELECT  D.CLIENT, D.TITLE, COUNT('X') TEMPORADAS
      FROM  (SELECT A.CLIENT, A.TITLE
                FROM (SELECT CLIENT,TITLE,SEASON, COUNT('X') N_EPISODIOS
                       FROM LIC_SERIES GROUP BY CLIENT,TITLE,SEASON) A
                JOIN SEASONS B ON (A.TITLE=B.TITLE AND A.SEASON=B.SEASON AND A.N_EPISODIOS=B.EPISODES)) D
      GROUP BY D.CLIENT, D.TITLE) E
JOIN SERIES F ON (E.TITLE=F.TITLE AND E.TEMPORADAS=F.TOTAL_SEASONS)

主要思想是创建两个索引,使用来自内部查询(最深连接)的ON子句中的值:

代码语言:javascript
复制
DROP INDEX INDEX_TAPS_MOVIES;
DROP INDEX INDEX_CASTS;

CREATE INDEX INDEX_TAPS_MOVIES
ON TAPS_MOVIES(TITLE);


CREATE INDEX INDEX_CONTRACTS
ON CASTS(TITLE);

但是经过分析,在加载时间上没有任何改善。我试图强制使用提示,但我得到了最差的性能。在这些类型的查询中使用索引的关键是什么?应该是优化它的更好的方法而不是索引?

最亲切的问候

EN

回答 1

Stack Overflow用户

发布于 2017-05-07 11:40:17

Oracle优化器并不总是使用索引。它检查不同的执行计划,并选择最好的one.sometimes,不使用索引返回更好的性能。为了提高性能,您可以并行表(参见oracle中的parallelizem )。为了使表并行执行,使用以下代码: ALTER TABLES YourTableName PARALLEL 4;

或者你可以像下面这样使用提示: /*+ PARALLEL(4) */关于parallelizem的度数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43826681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档