问题描述
下午好,
我有一个按年份和星期生成报告的表,但是当我执行查询时,TAF被标记。
我试图强制索引,但执行计划忽略了它。
我可以做什么来取索引?,有必要改变索引吗?
我的索引是在字段中组成的 (FIANIO,FISEMANA)
数据的一个示例:
谢谢和问候!!
我有一个按年份和星期生成报告的表,但是当我执行查询时,TAF被标记。
我试图强制索引,但执行计划忽略了它。
我可以做什么来取索引?,有必要改变索引吗?
我的索引是在字段中组成的 (FIANIO,FISEMANA)
CREATE TABLE PFPROFIN.TAFTREP ( FIIDSUCURSAL NUMBER(10) NOT NULL FIANIO NUMBER(4), FISEMANA NUMBER(2), FIIDPUESTO NUMBER(38), CUOTA NUMBER(15,2) SUMADEUDOR NUMBER(15,2) ); SELECT * FROM PFPROFIN.TAFTREP WHERE FISEMANA = :PA_SEMANA AND FIANIO = :PA_ANIO SELECT STATEMENT ALL_ROWS Cost: 223 Bytes: 2,732,729 Cardinality: 40,787 1 TABLE ACCESS FULL TABLE PFPROFIN.TAFTREP Cost: 223 Bytes: 2,732,729 Cardinality: 40,787
数据的一个示例:
FIIDSUCURSAL FIANIO FISEMANA FIIDPUESTO CUOTA SUMADEUDOR 1 2018 29 25 200 1500 1 2018 29 24 200 15000 1 2018 29 25 200 1500 1 2018 29 25 200 1500 13 2018 28 25 100 1000 13 2018 28 25 100 1000
谢谢和问候!!
专家解答
优化器没有选择索引有很多可能的原因。这可能是过时的或缺少的统计数据。
或者全扫描更快。正如汤姆在这里讨论的:
https://asktom.oracle.com/pls/asktom/asktom.search?tag=blocks-read-using-index-vs-full-table-scan
如果您想了解更多有关数据库为什么选择索引 (或不选择索引) 的信息,请观看此视频以及该系列中的其他视频:
或者全扫描更快。正如汤姆在这里讨论的:
https://asktom.oracle.com/pls/asktom/asktom.search?tag=blocks-read-using-index-vs-full-table-scan
如果您想了解更多有关数据库为什么选择索引 (或不选择索引) 的信息,请观看此视频以及该系列中的其他视频:
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




