oracle interval分区路上的小坑坑-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 3503126
  • 博文数量: 718
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 7790
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-07 08:51
个人简介

偶尔有空上来看看

文章分类

全部博文(718)

文章存档

2024年(4)

2023年(74)

2022年(134)

2021年(238)

2020年(115)

2019年(11)

2018年(9)

2017年(9)

2016年(17)

2015年(7)

2014年(4)

2013年(1)

2012年(11)

2011年(27)

2010年(35)

2009年(11)

2008年(11)

最近访客
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: oracle

2020-07-12 15:24:39

验证对于interval分区,如果提前扩展一下,遇到了几个小问题,一路下来记录到小本本里。
红色的都是坑。

获取ddl
--输出信息采用缩排或换行格式化
exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'pretty', true); --实际效果没那么美好 还是有个别单词被断开,换行
--确保每个语句都带分号
exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'sqlterminator', true);
--关闭表索引、外键等关联(后面单独生成)
exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'constraints', false);
exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'ref_constraints', false);
exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'constraints_as_alter', false);
--关闭存储、表空间属性
exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'storage', false);
exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'tablespace', false);
--关闭创建表的pctfree、nocompress等属性
exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'segment_attributes', false);
set pages 0 long 99999999 
exec dbms_metadata.set_transform_param(dbms_metadata.session_transform,'export',true);
select dbms_metadata.get_ddl('table','tab1','user1') from dual;


创建测试表
  create table c1
   ( "d_record_id" number(19,0) not null enable,     
  "d_rymdhm" date,                                                               
  "d_update_time" date,                                                          
  "d_datetime" date,                                                             
  "d_data_id" varchar2(30 byte),                                                       
  "v_report" varchar2(4000 byte)                                                 
   )                                     
  partition by range ("d_datetime") interval (numtodsinterval(1,'hour'))      
 (partition "ocea_chn_buship_rep_p"  values less than (to_date('1940-01-01 00:0:00', 'yyyy-mm-dd hh24:mi:ss')));


查看信息

select table_name, count(*) part_count
  from dba_tab_partitions
 where table_name in (select table_name
                        from dba_part_tables
                       where owner = 'a'
                         and interval like '%hour%')
 group by table_name
 order by 2;
select * from user_part_tables where table_name='c1';
select * from  user_tab_partitions  where table_name='c1';
这时应该只能看到一个分区信息。

必须enable 一下否则会报错ora-14402
alter table c1 enable row movement;


必须增加一条数据后才能执行下面语句,否则不会创建分区的
insert into c1 (d_record_id,d_datetime)values (1,sysdate);
commit;


declare v_key date;
begin
select sysdate into v_key from dual;
for x in 1 ..3 loop
update c1 set d_datetime=v_key where rownum=1; 
rollback;
  v_key:=v_key numtodsinterval(1,'hour');
   dbms_output.put_line(v_key);
end loop;
end;
/


确认分区被扩展了:

select table_name, count(*) part_count
  from dba_tab_partitions
 where table_name in (select table_name
                        from dba_part_tables
                       where owner = 'a'
                         and interval like '%hour%')
 group by table_name
 order by 2;
select * from user_part_tables where table_name='c1';
select * from  user_tab_partitions  where table_name='c1';
表c1这时就有了4个分区了,tmd。

统计近期告警日志中,哪些间隔分区表扩展过多少次:
 tail -20000 a1.log |fgrep "interval" |awk '{print  $2}' |awk -f: '{print $1 }' |sort |uniq -c|sort -rn|head
这个方法比数据字典要全,rac环境要看看其他节点的告警日志结果。
阅读(2939) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图