加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle 11gR2 – 查看功能列评估

发布时间:2021-01-12 18:45:00 所属栏目:站长百科 来源:网络整理
导读:对付具有为列界说的函数以及何时评估这些函数的Oracle视图,我好像有一个稀疏的题目. 假设我有以下视图和函数界说: CREATE OR REPLACE VIEW test_view_one ASSELECT column_one,a_package.function_that_returns_a_value(column_one) function_columnFROM a_

--------------------------------------------------------------------------------
 | Id  | Operation           | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
 --------------------------------------------------------------------------------
 |   0 | SELECT STATEMENT    |          |    25 |   975 |     2   (0)| 00:00:01 |
 |*  1 |  VIEW               |          |    25 |   975 |     2   (0)| 00:00:01 |
 |*  2 |   COUNT STOPKEY     |          |       |       |            |          |
 |   3 |    VIEW             |          |    26 |   676 |     2   (0)| 00:00:01 |
 |*  4 |     INDEX RANGE SCAN| TEST_IDX |    26 |   130 |     2   (0)| 00:00:01 |
 --------------------------------------------------------------------------------

这里只会见了所需的25行,因此该函数不能被称为N次.

此刻重要的思量身分,在A环境下,函数可以,但不必要为每一行挪用.我们怎么看?

谜底在表明打算的列投影中.

4 - (#keys=1) "ID"[NUMBER,"MY_PACKAGE"."MY_FUNCTION"("ID")[22]

相干的第4行表现,在SORT操纵中挪用该函数,因此每行都挪用该函数. (排序获取全部行).

结论

我在11.2上的测试表现,在A(具有SORT ORDER BY STOPKEY的完全扫描)的环境下,挪用视图函数
每排一次.
我想独一的办理要领是只选择ID,限定功效,然后插手原始视图以获取函数值.

最后的条记

我也在12.1中对此举办了测试,并在下面看到了列投影的变革.
该函数起首在VIEW(第3行)上钩较,即两种环境都能正常事变.

Column Projection Information (identified by operation id):
 -----------------------------------------------------------
 ...
    3 - "A"."ID"[NUMBER,22]
    5 - "ID"[NUMBER,22]

虽然在12c中,可以行使OFFSET的新成果 – FETCH NEXT.

祝好运!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读