ITPUB??ì3
ITPUB论坛 » Oracle数据库管理 » 如何得到视图具体存储的block号

标题: 如何得到视图具体存储的block号
离线 Arraymustapha
高级会员


来自 没的看了
精华贴数 1
个人空间 0
技术积分 5045 (254)
社区积分 79 (3783)
注册日期 2006-5-18
论坛徽章:13
会员2007贡献徽章授权会员2008北京奥运纪念徽章:沙滩排球生肖徽章2007版:猴生肖徽章2007版:鸡生肖徽章2007版:鼠
ITPUB新首页上线纪念徽章生肖徽章:虎数据库板块每日发贴之星数据库板块每日发贴之星生肖徽章:龙生肖徽章:马

发表于 2007-2-5 14:03 
如何得到视图具体存储的block号

视图不是一个段,建立的时候也不能定义存储参数,而且定义信息都是存储在字典中的,那么怎样才能得知,某个视图具体存在字典中的哪一块中呢,常规的dba_xx里都找不到,DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)也用不了,请问应该用哪种方法呢

想dump一个视图的存储结构,只要能满足这个要求就可以啦,谢谢


__________________
没事就运动运动~~~~~~~~~~~~~
只看该作者    顶部
离线 ZALBB
正在看龙蛇演义


精华贴数 8
个人空间 0
技术积分 28185 (29)
社区积分 13891 (101)
注册日期 2001-10-15
论坛徽章:49
现任管理团队成员2008北京奥运纪念徽章:曲棍球    
      

发表于 2007-2-5 14:08 
找出视图存在的表,读取视图语句的同时,显示ROWID,看看是否。


__________________
三民主义统一中国。
只看该作者    顶部
离线 mustapha
高级会员


来自 没的看了
精华贴数 1
个人空间 0
技术积分 5045 (254)
社区积分 79 (3783)
注册日期 2006-5-18
论坛徽章:13
会员2007贡献徽章授权会员2008北京奥运纪念徽章:沙滩排球生肖徽章2007版:猴生肖徽章2007版:鸡生肖徽章2007版:鼠
ITPUB新首页上线纪念徽章生肖徽章:虎数据库板块每日发贴之星数据库板块每日发贴之星生肖徽章:龙生肖徽章:马

发表于 2007-2-5 14:10 
那肯定是表的rowid了啊


__________________
没事就运动运动~~~~~~~~~~~~~
只看该作者    顶部
离线 ZALBB
正在看龙蛇演义


精华贴数 8
个人空间 0
技术积分 28185 (29)
社区积分 13891 (101)
注册日期 2001-10-15
论坛徽章:49
现任管理团队成员2008北京奥运纪念徽章:曲棍球    
      

发表于 2007-2-5 14:17 


QUOTE:
最初由 mustapha 发布
那肯定是表的rowid了啊

你问的不是这个吗:
把视图当作数据看,找出这个数据所在的ROWID?


__________________
三民主义统一中国。
只看该作者    顶部
离线 fangjinde
资深会员


精华贴数 0
个人空间 0
技术积分 1510 (1087)
社区积分 2 (27255)
注册日期 2005-9-9
论坛徽章:3
会员2007贡献徽章数据库板块每日发贴之星数据库板块每日发贴之星   
      

发表于 2007-2-5 14:22 
system@ORA10R2> select rowid,owner,view_name from dba_views where view_name='VEW
_T';
select rowid,owner,view_name from dba_views where view_name='VEW_T'
                                  *
第 1 行出现错误:
ORA-01445: 无法从不带保留关键字的表的联接视图中选择 ROWID 或采样


system@ORA10R2> select owner,view_name from dba_views where view_name='VEW_T';

OWNER                          VIEW_NAME
------------------------------ ------------------------------
SYSTEM                         VEW_T


只看该作者    顶部
离线 mustapha
高级会员


来自 没的看了
精华贴数 1
个人空间 0
技术积分 5045 (254)
社区积分 79 (3783)
注册日期 2006-5-18
论坛徽章:13
会员2007贡献徽章授权会员2008北京奥运纪念徽章:沙滩排球生肖徽章2007版:猴生肖徽章2007版:鸡生肖徽章2007版:鼠
ITPUB新首页上线纪念徽章生肖徽章:虎数据库板块每日发贴之星数据库板块每日发贴之星生肖徽章:龙生肖徽章:马

发表于 2007-2-5 14:23 
不是啊,我是想看某个视图本身具体存储在哪一个block里


__________________
没事就运动运动~~~~~~~~~~~~~
只看该作者    顶部
离线 fangjinde
资深会员


精华贴数 0
个人空间 0
技术积分 1510 (1087)
社区积分 2 (27255)
注册日期 2005-9-9
论坛徽章:3
会员2007贡献徽章数据库板块每日发贴之星数据库板块每日发贴之星   
      

发表于 2007-2-5 14:31 
system@ORA10R2> alter session set events '10046 trace name context forever,level 12';

会话已更改。

system@ORA10R2> create view vew_t as select * from ade.t;

视图已创建。

得到Trace file
insert into view$(obj#,cols,audit$,intcols,property,flags,textlength,text)values(:1,:2,:3,:4,:5,:6,:7,:8)
END OF STMT
PARSE #13:c=0,e=1763,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=21356352922
BINDS #13:
kkscoacd
Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=087c47e8  bln=22  avl=04  flg=05
  value=53663
Bind#1
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=087c47c4  bln=24  avl=02  flg=05
  value=3
Bind#2
  oacdty=01 mxl=128(38) mxlc=00 mal=00 scl=00 pre=00
  oacflg=18 fl2=0001 frm=01 csi=852 siz=128 off=0
  kxsbbbfp=65682260  bln=128  avl=38  flg=09
  value="--------------------------------------"
Bind#3
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=087c47a0  bln=24  avl=02  flg=05
  value=3
Bind#4
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=087c477c  bln=24  avl=01  flg=05
  value=0
Bind#5
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=087c4758  bln=24  avl=01  flg=05
  value=0
Bind#6
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=087c4734  bln=24  avl=02  flg=05
  value=40
Bind#7
  oacdty=01 mxl=128(40) mxlc=00 mal=00 scl=00 pre=00
  oacflg=18 fl2=0001 frm=01 csi=852 siz=128 off=0
  kxsbbbfp=074830dc  bln=128  avl=40  flg=09
  value="select "ENAME","DEPTNO","SAL" from ade.t"

system@ORA10R2> conn system/yqtfln as sysdba
已连接。

sys@ORA10R2> select rowid from view$ where obj#=53663;

ROWID
------------------
AAAAA/AABAAABr5AAE


只看该作者    顶部
离线 ddba
龙战於野,其血玄黄


精华贴数 1
个人空间 0
技术积分 6131 (209)
社区积分 252 (2022)
注册日期 2006-8-28
论坛徽章:17
玉石琵琶九尾狐狸紫蜘蛛蓝色妖姬铁扇公主嫦娥
玉兔红孩儿    

发表于 2007-2-5 14:34 
view本身就是一个定义 存储在数据字典里
你要看它存储在哪 直接看数据字典表存在哪喽~


__________________
多想想
只看该作者    顶部
离线 NinGoo
何乡是吾乡


来自 杭州
精华贴数 4
个人空间 235
技术积分 12738 (87)
社区积分 4338 (313)
注册日期 2004-12-7
论坛徽章:91
现任管理团队成员ITPUB元老2008北京奥运纪念徽章:水球2008北京奥运纪念徽章:摔跤2008北京奥运纪念徽章:网球2008北京奥运纪念徽章:篮球
2008北京奥运纪念徽章:艺术体操2008北京奥运纪念徽章:拳击2008北京奥运纪念徽章:田径2008北京奥运纪念徽章:乒乓球2008北京奥运纪念徽章:体操2008年新春纪念徽章

发表于 2007-2-5 14:34 
视图不存储数据,何来视图的存储结构

数据字典在内存中以放在row cache中的,也就是以行为单位load的,你定位其对应的block做什么?


__________________
只看该作者    顶部
离线 NinGoo
何乡是吾乡


来自 杭州
精华贴数 4
个人空间 235
技术积分 12738 (87)
社区积分 4338 (313)
注册日期 2004-12-7
论坛徽章:91
现任管理团队成员ITPUB元老2008北京奥运纪念徽章:水球2008北京奥运纪念徽章:摔跤2008北京奥运纪念徽章:网球2008北京奥运纪念徽章:篮球
2008北京奥运纪念徽章:艺术体操2008北京奥运纪念徽章:拳击2008北京奥运纪念徽章:田径2008北京奥运纪念徽章:乒乓球2008北京奥运纪念徽章:体操2008年新春纪念徽章

发表于 2007-2-5 14:40 
不知道这个是不是你要的
PHP code:


SYS
@ning>create view v_test as select from ning.test;



View created.





SYS@ning>select object_id from all_objects where object_name='V_TEST';



 
OBJECT_ID

----------

     
10540





SYS
@ning>select dbms_rowid.rowid_relative_fno(rowid),dbms_rowid.rowid_block_numb

er
(rowidfrom viewwhere obj#=10540;



DBMS_ROWID.ROWID_RELATIVE_FNO(ROWIDDBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)

------------------------------------ ------------------------------------

                                   
1                                14184

--




__________________
只看该作者    顶部
相关内容


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