gpt4 book ai didi

sql - 甲骨文完整提示

转载 作者:行者123 更新时间:2023-12-04 21:11:01 26 4
gpt4 key购买 nike

如果我理解 documentation correctly ;完整提示应该强制进行全表扫描。在下面的场景中,它的表现不同;

在其上创建的索引中的 Num。

SQL> desc test;
Name Null? Type
----------------------------------------- -------- ----------------------------
NUM NOT NULL NUMBER
NUM2 NUMBER(10)
NUM3 NUMBER

询问:
select num from test;

结果:
       NUM
----------
1
2

执行计划
Plan hash value: 410557223

-------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 4 | 1 (0)| 00:00:01 |
| 1 | INDEX FULL SCAN | ID | 2 | 4 | 1 (0)| 00:00:01 |
-------------------------------------------------------------------------

询问:
select /* +full(test) */ num from test;

结果:
       NUM
----------
1
2

执行计划
Plan hash value: 410557223

-------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 4 | 1 (0)| 00:00:01 |
| 1 | INDEX FULL SCAN | ID | 2 | 4 | 1 (0)| 00:00:01 |
-------------------------------------------------------------------------

我知道我正在选择一个存储在索引中的值。添加任何其他列都会使扫描变得完整。因此,我不得不问显而易见的问题。提示是请求还是优化器的命令?

附带说明一下,统计计算与优化有什么关系。索引的统计信息是自动更新还是显式操作?

最佳答案

我还没有测试过这个,但使用提示的正确语法是:

select /*+ full(test) */ num from test;

这是斜线星加空格。

关于sql - 甲骨文完整提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6168581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com