中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
用x$dual代替dual所得到的结果是什么
作者:佚名 时间:2004-07-08 10:40 出处:互连网 责编:chinaitpower
              摘要:用x$dual代替dual所得到的结果是什么

  connect / as sysdba
  create view dual2 
    as select dummy from x$dual
    where instance = USERENV('INSTANCE');
  grant select on dual2 to public;
  create public synonym dual2 for dual2;
   
  connect scott/tiger; 
   
  create table temp 
  ( sqlno number(3),
    b_a varchar2(2),
    stat number,
    value number
  );
   
  SQL> l
    1 declare
    2   v_dummy date;
    3   v_start number;
    4 begin
    5   insert into temp select 1,'b',statistic#,value from v$mystat;
    6   v_start := dbms_utility.get_time;
    7   for i in 1..2000 loop
    8     select sysdate into v_dummy from dual;
    9   end loop;
   10   dbms_output.put_line('1st stat used: '||(dbms_utility.get_time - v_start)||' seconds');
   11
   12   insert into temp select 1,'ab',statistic#,value from v$mystat;
   13   v_start := dbms_utility.get_time;
   14   for i in 1..2000 loop
   15     select sysdate into v_dummy from dual2;
   16   end loop;
   17   dbms_output.put_line('2st stat used: '||(dbms_utility.get_time - v_start)||' seconds');
   18   insert into temp select 2,'a',statistic#,value from v$mystat;
   19 end;
   20*
  SQL> /
  1st stat used: 57 seconds
  2st stat used: 45 seconds
   
  PL/SQL procedure successfully completed.
   
  SQL> l
    1 select (select name from v$statname where statistic# = t2.stat) name, t1.value value1, t2.value value2
    2 from
    3 (
    4 select 1,b.stat,b.value - a.value value
    5 from
    6 (select * from temp
    7  where sqlno=1
    8  and b_a = 'b') a,
    9 (select * from temp
   10  where sqlno=1
   11  and b_a = 'ab') b
   12 where b.stat = a.stat
   13 ) t1,
   14 (select 2,t3.stat,t4.value - t3.value value
   15 from
   16 (select * from temp
   17  where sqlno=1
   18  and b_a = 'ab') t3,
   19 (select * from temp
   20  where sqlno=2
   21  and b_a = 'a') t4
   22 where t4.stat = t3.stat
   23 ) t2
   24 where t1.stat = t2.stat
   25* and t1.value <>t2.value
  SQL> /
   
  NAME                     VALUE1   VALUE2
  ---------------------------------------- ---------- ----------
  session logical reads             10016     20
  enqueue releases                 1     2
  db block gets                 8011     15
  consistent gets                2005     5
  db block changes                 8     18
  free buffer requested               1     2
  calls to kcmgcs                  0     2
  calls to get snapshot scn: kcmgss       2004    2002
  redo entries                   5     11
  redo size                   5124    5928
  no work - consistent read gets         2002     2
  table scans (short tables)           2000     0
  table scan rows gotten             2000     0
  table scan blocks gotten            2000     0
  buffer is not pinned count           2004     4
   
  15 rows selected.
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有