ORACLE rowid切分大表

摘要:
first_ value(block_id)over(PARTITIONBYDOI,last_value(relative_no)over(PARTITIONBYDOI),last_vvalue(blocks_id+blocks-1)over(partitionBYDO,SUM(blocks)over)(ORDERBYDATA_OBJECT_id,

通过如下sql获取rowid切分范围

SELECT rownum || ', ' || ' rowid between ' || chr(39) ||
       dbms_rowid.rowid_create(1, DOI, lo_fno, lo_block, 0) || chr(39) ||
       ' and  ' || chr(39) ||
       dbms_rowid.rowid_create(1, DOI, hi_fno, hi_block, 1000000) ||
       chr(39) data
  FROM (SELECT DISTINCT DOI,
                        grp,
                        first_value(relative_fno) over(PARTITION BY DOI, grp ORDER BY relative_fno, block_id rows BETWEEN unbounded preceding AND unbounded following) lo_fno,
                        first_value(block_id) over(PARTITION BY DOI, grp ORDER BY relative_fno, block_id rows BETWEEN unbounded preceding AND unbounded following) lo_block,
                        last_value(relative_fno) over(PARTITION BY DOI, grp ORDER BY relative_fno, block_id rows BETWEEN unbounded preceding AND unbounded following) hi_fno,
                        last_value(block_id + blocks - 1) over(PARTITION BY DOI, grp ORDER BY relative_fno, block_id rows BETWEEN unbounded preceding AND unbounded following) hi_block,
                        SUM(blocks) over(PARTITION BY DOI, grp) sum_blocks,
                        SUBOBJECT_NAME
          FROM (SELECT obj.OBJECT_ID,
                       obj.SUBOBJECT_NAME,
                       obj.DATA_OBJECT_ID AS DOI,
                       ext.relative_fno,
                       ext.block_id,
                       SUM(blocks) over() SUM,
                       SUM(blocks) over(ORDER BY DATA_OBJECT_ID, relative_fno, block_id) - 0.01 sum_fno,
                       TRUNC((SUM(blocks) over(ORDER BY DATA_OBJECT_ID,
                                               relative_fno,
                                               block_id) - 0.01) /
                             (SUM(blocks) over() / &cnt)) grp,
                       ext.blocks
                  FROM dba_extents ext, dba_objects obj
                 WHERE ext.segment_name = '&object_name'
                   AND ext.owner = '&owner'
                   AND obj.owner = ext.owner
                   AND obj.object_name = ext.segment_name
                   AND obj.DATA_OBJECT_ID IS NOT NULL
                 ORDER BY DATA_OBJECT_ID, relative_fno, block_id)
         ORDER BY DOI, grp);

免责声明:文章转载自《ORACLE rowid切分大表》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇前台往后台传idthinkphp框架(已有模板和tp框架做结合)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS--Block的那些事

假设我们熟悉代理递值的话,对代理我们可能又爱有恨!我们先建立模型A页面 push B页面,如果把A页面的值传递到B页面,属性和单例传值可以搞定!但是如果Pop过程中把B页面的值传递到A页面,那就可以用单例或者代理了!说到代理,我们要先声明协议,创建代理,很是麻烦。常常我们传递一个数值需要在两个页面间写很多代码,这些代码改变页面的整体顺序,可读性也打了折扣。...

docker查看jvm内存占用

  yzh_1346983557 2019-04-12 11:17:38  9589  收藏 4 分类专栏: Docker 文章标签: docker jvm内存 版权 一。进入docker容器的宿主机,查看运行指定镜像的容器id(结果的第一列): docker ps | grep myImageName(或docker ps | gr...

selenium+python之iframe学习笔记

一、查看iframe,判断元素是否在iframe上 1.Top Window 如果此处显示的是Top Window,表明元素在首页,不需要切换iframe 2.iframe 如果此处显示是iframe,则需要切换,driver.switch_to.frame() 注意:当此处为空白时,表明有2层iframe  二、切换iframe,可以通过id,nam...

ios开发--常用宏定义(部分转)

1、release时,屏蔽log C代码   #if defined (DEBUG) && DEBUG == 1      #else   #define NSLog(...) {};   #endif   #if defined (DEBUG) && DEBUG == 1 #else #define NSLog...

C# Sql 触发器

触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。 Ø 什么是触发器     触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:...

嵌入式&iOS:回调函数(C)与block(OC)传 参/函数 对比

C的回调函数: callBack.h 1)、声明一个doSomeThingCount函数,参数为一个(无返回值,1个int参数的)函数。 void DSTCount(void(*CallBack)(int data_i32)); callBack.c 1)、在doSomeThingCount函数,对运行次数自增,并调用参数--函数。 void DSTC...