首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle 11g是否针对阵列上的循环进行了优化?

Oracle 11g是否针对阵列上的循环进行了优化?
EN

Stack Overflow用户
提问于 2012-08-14 05:14:23
回答 1查看 337关注 0票数 2

Oracle 11g是否针对阵列上的循环进行了优化?如果是这样,它是如何做到的?

示例:

下面的代码是否将每个lt_some_array(i)实例视为指向索引i处的数组中记录的指针?或者,它每次都会查找它吗?

代码语言:javascript
复制
FOR i IN lt_some_array.FIRST..lt_some_array.LAST
LOOP
   field1 := lt_some_array(i).field1;
   field2 := lt_some_array(i).field2;
   field3 := lt_some_array(i).field3;
   field4 := lt_some_array(i).field4;
   field5 := lt_some_array(i).field5;
   field6 := lt_some_array(i).field6;
   do_something();
END LOOP;

澄清:

编译器是否像下面这样对待它(其中lr_some_row是一个指针,而不是一个副本):

代码语言:javascript
复制
FOR i IN lt_some_array.FIRST..lt_some_array.LAST
LOOP
   lr_some_row := lt_some_array(i);
   field1 := lr_some_row.field1;
   field2 := lr_some_row.field2;
   field3 := lr_some_row.field3;
   field4 := lr_some_row.field4;
   field5 := lr_some_row.field5;
   field6 := lr_some_row.field6;
   do_something();
END LOOP;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-15 01:31:55

是的,Oracle 11g可为您执行此优化。

该功能是在10g中添加的。请参阅presentation "PL/SQL Performance - Debunking the Myths"的第60页。它包含一个与您的代码非常相似的示例。在9iR2中,手动优化的速度几乎是9iR2的两倍,但在10gR1中根本没有帮助。

虽然我不能告诉你Oracle是如何做到的。据我所知,关于Oracle如何工作的详细程度是不存在的。

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

https://stackoverflow.com/questions/11942417

复制
相关文章

相似问题

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