ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » Oracle新技术/11g » DUAL 负担减轻

标题: DUAL 负担减轻
在线/呼叫 Fenng
版主


精华贴数 32
个人空间 0
技术积分 53093 (11)
社区积分 6605 (232)
注册日期 2001-12-18
论坛徽章:28
现任管理团队成员2007年度最佳版主生肖徽章2007版:蛇   
      

发表于 2004-3-25 00:15 
DUAL 负担减轻

from OTN:

有的时候开发人员过多的从dual中"取数据"
会带来严重的性能问题

Oracle Database 10g: The Top 20 Features for DBAs

Use DUAL Freely

How many developers (and DBAs, too) do you think use this command often?

select USER into <some variable> from DUAL

Far too many, probably. Each call to the DUAL creates logical I/Os, which the database can do without. In some cases the call to DUAL is inevitable as in the line <somevariable> := USER. Because Oracle code treats DUAL as a special table, some ideas for tuning tables may not apply or be relevant.

Oracle Database 10g makes all that worry simply disappear: Because DUAL is a special table, the consistent gets are considerably reduced and the optimization plan is different as seen from the event 10046 trace.

set autotrace on

select user from dual;

In Oracle9i
============================
Rows     Execution Plan
-------  ---------------------------------------------------
      0  SELECT STATEMENT   GOAL: CHOOSE
      1   TABLE ACCESS (FULL) OF 'DUAL'
          

In 10g
============================
Rows     Execution Plan
-------  ---------------------------------------------------
      0  SELECT STATEMENT   MODE: ALL_ROWS
      0   FAST DUAL


__________________
我的Blog: www.dbanotes.net   

点击即可用 Google Reader 订阅   

支付宝官方Blog

4nyth1n9 th4t can 90 wr0n9 wi11 9o wr0ng  
不想做厨师的裁缝不是好司机
只看该作者    顶部
在线/呼叫 Fenng
版主


精华贴数 32
个人空间 0
技术积分 53093 (11)
社区积分 6605 (232)
注册日期 2001-12-18
论坛徽章:28
现任管理团队成员2007年度最佳版主生肖徽章2007版:蛇   
      

发表于 2004-3-25 00:16 
实际看看

SQL> connect scott/tiger
Connected.
SQL> set autotrace on
SQL> select user from dual;

USER
------------------------------
SCOTT


Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=FIRST_ROWS (Cost=8 Card=8168)
   1    0   TABLE ACCESS (FULL) OF 'DUAL' (Cost=8 Card=8168)

对DUAL的全表扫瞄:TABLE ACCESS (FULL) OF 'DUAL'  


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          3  consistent gets   //注意这里
          0  physical reads
          0  redo size
        378  bytes sent via SQL*Net to client
        503  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed

SQL>


__________________
我的Blog: www.dbanotes.net   

点击即可用 Google Reader 订阅   

支付宝官方Blog

4nyth1n9 th4t can 90 wr0n9 wi11 9o wr0ng  
不想做厨师的裁缝不是好司机
只看该作者    顶部
在线/呼叫 Fenng
版主


精华贴数 32
个人空间 0
技术积分 53093 (11)
社区积分 6605 (232)
注册日期 2001-12-18
论坛徽章:28
现任管理团队成员2007年度最佳版主生肖徽章2007版:蛇   
      

发表于 2004-3-25 00:22 
看看10g的

SQL> connect scott/tiger
Connected.
SQL> set autotrace on
SQL> select user from dual;

USER
------------------------------
SCOTT


Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=FIRST_ROWS (Cost=2 Card=1)
   1    0   FAST DUAL (Cost=2 Card=1)

访问路径是 fast dual  cost 也很低



Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
          0  consistent gets //难道oracle 对DUAL的开销都小到这个样子了 ?!
          0  physical reads
          0  redo size
        392  bytes sent via SQL*Net to client
        512  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed

数据库都是'新鲜"启动的


__________________
我的Blog: www.dbanotes.net   

点击即可用 Google Reader 订阅   

支付宝官方Blog

4nyth1n9 th4t can 90 wr0n9 wi11 9o wr0ng  
不想做厨师的裁缝不是好司机
只看该作者    顶部
离线 xzh2000
仙人抚我须 结发授长生



精华贴数 13
个人空间 0
技术积分 46551 (14)
社区积分 5188 (293)
注册日期 2002-7-17
论坛徽章:32
现任管理团队成员ITPUB元老授权会员2008北京奥运纪念徽章:篮球2008北京奥运纪念徽章:垒球生肖徽章2007版:狗
2008北京奥运纪念徽章:柔道2008北京奥运纪念徽章:帆船生肖徽章2007版:虎ITPUB新首页上线纪念徽章数据库板块每日发贴之星数据库板块每日发贴之星

发表于 2004-3-25 09:31 
1 recursive calls
难道没有影响吗?


__________________
过目即忘  插柳成荫
只看该作者    顶部
离线 piner
that's life


精华贴数 15
个人空间 0
技术积分 63160 (8)
社区积分 1695 (690)
注册日期 2003-2-24
论坛徽章:38
现任管理团队成员2007年度最佳版主2006年度最佳技术精华原创ITPUB元老Heart of PUBHeart of PUB
ITPUB北京九华山庄2008年会纪念徽章管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章蓝锆石会员2007贡献徽章

发表于 2004-3-25 09:37 


QUOTE:
最初由 xzh2000 发布
1 recursive calls
难道没有影响吗?


那一般是第一次存在,以后就不存在的了


__________________
if not now,when?if not me,who?

欢迎访问我的网站Blog www.ixdba.com

欢迎访问Taobao dba团队Blog www.taobaodba.com

热烈庆祝新书出版,欢迎购买

天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤
只看该作者    顶部
离线 yangtingkun
版主


精华贴数 12
个人空间 24296
技术积分 47684 (12)
社区积分 3185 (444)
注册日期 2001-12-29
论坛徽章:109
现任管理团队成员NBA季后赛大富翁2008北京奥运纪念徽章:足球2008北京奥运纪念徽章:羽毛球2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:拳击
2008北京奥运纪念徽章:柔道2008北京奥运纪念徽章:皮划艇静水2008北京奥运纪念徽章:体操2008北京奥运纪念徽章:曲棍球2008北京奥运纪念徽章:篮球2008北京奥运纪念徽章:举重

发表于 2004-3-28 11:24 
感觉dual真的变成纯虚表了。
可能现在的实现机制和sybase的select @a = 5类型?


__________________
学习ORACLE最大的障碍是什么——浮躁

http://yangtingkun.itpub.net

个人BLOG文章索引:http://www.itpub.net/showthread.php?s=&threadid=699527

11g的一点研究:http://www.itpub.net/852861.html
只看该作者    顶部
离线 海天
初级会员



精华贴数 0
个人空间 0
技术积分 66 (22840)
社区积分 4 (17488)
注册日期 2004-3-17
论坛徽章:0
      
      

发表于 2004-3-30 08:36 
1 recursive calls
调用什么?
sql_trace 看不到。


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问