zoukankan      html  css  js  c++  java
  • ORACLE rowid切分大表

    通过如下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);
  • 相关阅读:
    敏捷开发中的sprint是什么意思_百度知道
    桐君堂_百度百科
    HSTS Preloading
    做CloudXNS产品运营的这半年 – CHINA Testers
    java~spring-ioc的使用
    java~api返回值的标准化
    java8的函数式接口
    redis使用场景和java测试案例
    springboot~注册bean的方法
    学生信息管理系统问题集锦
  • 原文地址:https://www.cnblogs.com/wolil/p/5685626.html
Copyright © 2011-2022 走看看