oracle idl_ub1,系统对象IDL_UB1$表的含义及作用

在ITPUB上有朋友遇到SYSTEM表空间快速扩展的问题

系统表空间异常扩展的情况遇到过很多:

有的和用户表空间或对象分配不当有关

有的和高级复制的空间使用有关....

经过如下代码查询,可以找出系统表空间中占用空间最多的Top9对象:

col segment_name for a25

col owner for a10

SELECT *

FROM (SELECT   BYTES, segment_name, segment_type, owner

FROM dba_segments

WHERE tablespace_name = 'SYSTEM'

ORDER BY BYTES DESC)

WHERE ROWNUM < 10

/

这个朋友的Top9对象为:

1    3082174464  IDL_UB1{GetProperty(Content)}nbsp;TABLE SYS

2    63979520      SOURCE{GetProperty(Content)}nbsp;TABLE SYS

3    12075008      IDL_UB2{GetProperty(Content)}nbsp;TABLE SYS

4    7749632       DEPENDENCY{GetProperty(Content)}nbsp;TABLE SYS

5    7356416       I_DEPENDENCY2 INDEX SYS

6    6438912       I_DEPENDENCY1 INDEX SYS

7    5521408       I_IDL_UB11   INDEX SYS

8    4341760       IDL_SB4{GetProperty(Content)}nbsp;TABLE SYS

9    3555328       I_ACCESS1   INDEX SYS

我们注意到占用空间最大的对象是IDL_UB1$系统表,空间占用近3G,那么这个表是做什么用的呢?

从sql.bsq中我们可以找到这个表的创建语句:

create table idl_ub1{GetProperty(Content)}nbsp;                           /* idl table for ub1 pieces */

( obj#          number not null,                            /* object number */

part          number not null,

/* part: 0 = diana, 1 = portable pcode, 2 = machine-dependent pcode */

version       number,                                    /* version number */

piece#        number not null,                             /* piece number */

length

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IDL_IDLBridge是一个用于在IDL中启动子进程并执行代码的对象。通过创建IDL_IDLBridge对象并调用Execute方法,可以在IDL中启动子进程并执行指定的IDL代码。[1] 使用IDL_IDLBridge可以实现在异步计算中使用多进程加速数据处理的目的。通过在一个IDL进程等待的同时完成更多的处理,充分利用PC的CPU算力。 以下是使用IDL_IDLBridge的代码示例: compile_opt idl2 obridge = obj_new('IDL_IDLBridge') childprofile1='Full path to your IDL file' obridge->Execute,'.compile "' childprofile1 '"' obridge->Execute,'IDL file name',/NOWAIT IDL_IDLBridge还可以实现并行算法,特别适用于逐行计算的处理问题。可以通过设置回调函数来获取具体的执行信息,或者使用dialog_message函数来模拟print语句的效果。下面是一个示例代码: function_position = 'C:\Users\DN\Documents\IDL\mult2.pro' b='xpnp' oBridge2 = OBJ_NEW('IDL_IDLBridge',CALLBACK='demo_bridge_call') oBridge2->Execute,".compile " "'" Function_position "'" oBridge2->Setvar,"str",b oBridge2->Execute,"xxx=mult(str)",/nowait print,'xgggx',oBridge2->status() while(1) do begin sg=oBridge2->status() if(sg eq 0) then break endwhile pro demo_bridge_call, status, error, oBr CASE status of 2: str="Completed" 3: str="Error: " error 4: str=error ; Aborted message ENDCASE print,'str::',str END 另外,IDL_IDLBridge还可以同时开启多个进程来处理数据。以下是一个示例代码: pro MultiProcesses ;开启3个进程同时处理数据 compile_opt idl2 obridge1 = obj_new('IDL_IDLBridge') childprofile1='F:\Mekong_MultiRun\mekong_2010.pro' obridge1->Execute,'.compile "' childprofile1 '"' obridge1->Execute,'mekong_2010',/NOWAIT obridge2 = obj_new('IDL_IDLBridge') childprofile2='F:\Mekong_MultiRun\mekong_2011.pro' obridge2->Execute,'.compile "' childprofile2 '"' obridge2->Execute,'mekong_2011',/NOWAIT obridge3 = obj_new('IDL_IDLBridge') childprofile3='F:\Mekong_MultiRun\mekong_2012.pro' obridge3->Execute,'.compile "' childprofile3 '"' obridge3->Execute,'np_mekong_2012',/NOWAIT END 总结:IDL_IDLBridge是一个用于在IDL中启动子进程并执行代码的对象。它可以实现异步计算和多进程加速数据处理,并提供了一些回调函数和工具函数来获取执行信息和模拟print语句的效果。可以根据需要创建多个IDL_IDLBridge对象来同时处理多个任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值