精华内容
下载资源
问答
  • Oracle分区表在线重定义--更改分区列作者:sylar版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]【背景说明】Oracle从9i版本开始提供了在线重定义表功能,通过调用DBMS_REDEFINITION包,可以...

    Oracle分区表在线重定义--更改分区列

    作者:sylar版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]

    【背景说明】

    Oracle从9i版本开始提供了在线重定义表功能,通过调用DBMS_REDEFINITION包,可以在修改表结构的同时允许DML操作。

    本次分享背景:环境:ORACLE 11.2.0.4.0

    对象:CON_CONTENT_HISTORY

    该表行数:4.8亿,原来的分区列是CREATETM,按照时间按月进行范围分区;新的分区列是CONTENT_DATE

    需求说明详见下图

    viewspace-2120937

    【思路】

    虽然源表已是分区表,但实际操作类似于普通表的在线重定义分区

    【注意事项】分区在线重定义必须源表上面有主键,如果没有主键则利用rowid;

    【准备工作】

    1、与业务人员沟通后,添加如下索引;耗时2000.531s

    ALTER TABLE CON_CONTENT_HISTORY ADD CONSTRAINTS PK_CON_CONTENT_H_HISTORY PRIMARY KEY (LOCNO, CELL_NO, CELL_ID, CONTENT_DATE) online parallel 8 ;

    2、创建临时表,临时表跟源表结构一致,但分区列改为:CONTENT_DATE;用时3s。(11g利用interval可以自动创建分区)。

    CREATE TABLE "CYT" --创建时表名尽量跟线上规则不一致,且表所在空间足够容纳大表

    ( "CELL_ID" NUMBER(15,0) NOT NULL ENABLE,

    "LOCNO" VARCHAR2(10 CHAR) NOT NULL ENABLE,

    "CELL_NO" VARCHAR2(24 CHAR) NOT NULL ENABLE,

    "ITEM_NO" VARCHAR2(30 CHAR) NOT NULL ENABLE,

    "BARCODE" VARCHAR2(32 CHAR) NOT NULL ENABLE,

    "ITEM_TYPE" VARCHAR2(20 CHAR) DEFAULT '0' NOT NULL ENABLE,

    "QUALITY" VARCHAR2(2 CHAR) DEFAULT '0' NOT NULL ENABLE,

    "OWNER_NO" VARCHAR2(3 CHAR),

    "SUPPLIER_NO" VARCHAR2(10 CHAR) DEFAULT 'N',

    "QTY" NUMBER(18,5) DEFAULT 0 NOT NULL ENABLE,

    "OUTSTOCK_QTY" NUMBER(18,5) DEFAULT 0 NOT NULL ENABLE,

    "INSTOCK_QTY" NUMBER(18,5) DEFAULT 0 NOT NULL ENABLE,

    "PACK_QTY" NUMBER(18,5) DEFAULT 1,

    "UNUSUAL_QTY" NUMBER(18,5) DEFAULT 0,

    "STATUS" VARCHAR2(1 CHAR) DEFAULT '0' NOT NULL ENABLE,

    "HM_MANUAL_FLAG" VARCHAR2(1 CHAR) DEFAULT '1' NOT NULL ENABLE,

    "CREATOR" VARCHAR2(20 CHAR) DEFAULT 'N',

    "CREATETM" DATE,

    "EDITOR" VARCHAR2(20 CHAR),

    "EDITTM" DATE,

    "CONTENT_DATE" DATE,

    "SIZE_NO" VARCHAR2(10 CHAR)

    )

    PARTITION BY RANGE ("CONTENT_DATE") INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))

    (PARTITION "P1" VALUES LESS THAN (TO_DATE(' 2014-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')))

    3、检查重定义的合理性;如果不能重定义,会显示具体的原因。(第一参数是用户名,第二个参数是写需要重定义的表名)

    exec dbms_redefinition.can_redef_table('usr_wms_city', ' CON_CONTENT_HISTORY');

    【开始操作】

    【注意】

    虽然使用在线重定义对线上影响较小,但由于该表白天使用较为频繁,怕影响较大,故操作是晚上10点以后开始进行的

    检查临时表cyt所在的空间是否够容纳大量数据

    1、重定义表结构

    此过程比较消耗时间,会把临时表cyt表填满数据,所以此时要有足够的空间。(做此操作之前一定要查看空间是否够用)

    由于本环境源表和临时表结构相同,故按照下面第一个脚本执行,用时2721.265秒

    【两表结构相同的脚本:】

    BEGIN

    DBMS_REDEFINITION.start_redef_table(

    uname => 'usr_wms_city',

    orig_table => 'CON_CONTENT_HISTORY',

    int_table => 'cyt');

    END;

    【两表结构不同的脚本:】

    EXEC DBMS_REDEFINITION.START_REDEF_TABLE(

    'usr_wms_city',

    'CON_CONTENT_HISTORY',

    'cyt',

    'cell_id cell_id,.......', -- 在这里指定新的映射关系

    DBMS_REDEFINITION.CONS_USE_PK);

    【注意】

    如果中途出现意外,使用如下语句回滚:

    execute dbms_redefinition.abort_redef_table('usr_wms_city','con_content_history','cyt');

    2、同步临时表

    同步从开始转换到现在产生的新的数据,此处用时35.594秒

    BEGIN

    dbms_redefinition.sync_interim_table(

    uname => 'usr_wms_city',

    orig_table => 'CON_CONTENT_HISTORY',

    int_table => 'cyt');

    END;

    3、创建新表的索引

    在线重定义只定义数据,不建立索引

    用下面的SQL获取创建索引的语句,然后创建到临时表上面

    并行创建索引用时1059.468秒

    select dbms_metadata.get_ddl('INDEX','IDX_CON_CONTENT_H1') from dual;

    select dbms_metadata.get_ddl('INDEX','PK_CON_CONTENT_H_CELL_ID1') from dual;

    select dbms_metadata.get_ddl('INDEX','PK_CON_CONTENT_H_HISTORY') from dual;

    4、收集临时表的统计信息

    此处用时1721.672秒

    exec dbms_stats.gather_table_stats('usr_wms_city', 'cyt', cascade => true);

    5、结束重定义

    用时142.328秒

    BEGIN

    DBMS_REDEFINITION.FINISH_REDEF_TABLE(uname => 'usr_wms_city',

    orig_table => 'con_content_history',

    int_table => 'cyt'

    );

    END;

    至此,分区重定义结束

    【检查】

    1、查看表的索引和约束,是否与之前一致

    2、取消索引的并行度

    select * from dba_indexes where degree >1 --查看有没有并行创建的索引

    alter index PK_CON_CONTENT_H_CELL_ID1 noparallel;--取消并行

    3、编译失效的对象

    下面脚本是检查是否有失效对象,并生成需要重新编译对象的SQL脚本

    SELECT 'ALTER ' || (CASE

    WHEN OBJECT_TYPE = 'PACKAGE BODY' THEN

    'PACKAGE'

    ELSE

    OBJECT_TYPE

    END) || ' ' || owner || '.' || OBJECT_NAME || ' COMPILE ' || (CASE

    WHEN OBJECT_TYPE = 'PACKAGE BODY' THEN

    'BODY;'

    ELSE

    ';'

    END),

    owner,

    OBJECT_NAME,

    OBJECT_TYPE,

    STATUS,

    O.CREATED,

    LAST_DDL_TIME

    FROM dba_OBJECTS O

    WHERE STATUS = 'INVALID';

    4、验证分区

    查看表是否为分区表

    select partitioned from user_tables where table_name = 'CON_CONTENT_HISTORY';

    查看表的分区列是不是业务所需求的分区列

    select * from user_PART_KEY_COLUMNS where name=upper('con_content_history')

    查看数据是否落在分区里面

    select count(*) from con_content_history partition(SYS_P6505) where content_date >= TO_DATE('2016-01-18', 'YYYY-MM-DD')

    5、删除临时表

    待验证通过后,删掉临时表

    BEGIN

    truncate table cyt;--因为是大表,建议使用该方式

    drop table cyt; --删除临时表的定义

    END;

    展开全文
  • 内容摘要:最近在做一个客户关系管理系统,项目做的到不是非常成功,可还是学到了不少的知识,由于数据量很大,没有专门的oracle数据库人员支持,对数据库优化管理等也只有我这个约懂一点的人上了。在对数据库优化上...

    内容摘要:最近在做一个客户关系管理系统,项目做的到不是非常成功,可还是学到了不少的知识,由于数据量很大,没有专门的oracle数据库人员支持,对数据库优化管理等也只有我这个约懂一点的人上了。在对数据库优化上有一点点心得写出来希望能同大家一起学习和交流。数据库大表的优化:采用蔟表(clust...

    最近在做一个客户关系管理系统,项目做的到不是非常成功,可还是学到了不少的知识,由于数据量很大,没有专门的oracle数据库人员支持,对数据库优化管理等也只有我这个约懂一点的人上了。在对数据库优化上有一点点心得写出来希望能同大家一起学习和交流。

    数据库大表的优化:采用蔟表(clustered tables)及蔟索引(Clustered Index)

    蔟表和蔟索引是oracle所提供的一种技术,其基本思想是将几张具有相同数据项、并且经常性一起使用的表通过共享数据块(data block)的模式存放在一起。各表间的共同字段作为蔟键值(cluster key),数据库在访问数据时,首先找到蔟键值,以此同时获得若干张表的相关数据。蔟表所能带来的好处是可以减少I/O和减少存储空间,其中我更看重前者。采用表分区(partition)

    表分区技术是在超大型数据库(VLDB)中将大表及其索引通过分区(patition)的形式分割为若干较小、可管理的小块,并且每一分区可进一步划分为更小的子分区(sub partition)。而这种分区对于应用来说是透明的。通过对表进行分区,可以获得以下的好处:

    1)减少数据损坏的可能性。

    2)各分区可以独立备份和恢复,增强了数据库的可管理性。

    3)可以控制分区在硬盘上的分布,以均衡IO,改善了数据库的性能。

    蔟表与表分区技术的侧重点各有不同,前者侧重于改进关联表间查询的效率,而表分区侧重于大表的可管理性及局部查询的性能。而这两项对于我的系统来说都是极为重要。由于本人技术限制,目前尚不确定两者是否可以同时实现,有那位在这方面有经验的给点指导将不胜感激。

    在两者无法同时实现的情况下,应依照需实现的功能有所取舍。综合两种模式的优缺点,我认为采用表分区技术较为适用于我们的应用。

    Oracle的表分区有以下几种类型:

    1)范围分区:将表按某一字段或若干个字段的取值范围分区。

    2)hash分区:将表按某一字段的值均匀地分布到若干个指定的分区。

    3)复合分区:结合了前面两种分区类型的优点,首先通过值范围将表进行分区,然后以hash模式将数据进一步均匀分配至物理存储位置。

    综合考虑各项因素,以第三种类型最为优越。(本人实在技术有限仅采用了第1种范围分区,因为比较简单,便于管理)

    优化的具体步骤:

    1.确定需要优化分区的表:

    经过对系统数据库表结构和字段,应用程序的分析,现在确定那些大表需要进行分区:

    如帐户交易明细表acct_detail.

    2.确定表分区的方法和分区键:

    分区类型:采用范围分区。

    分 区 键:

    按trans_date(交易时间)字段进行范围分区.

    3.确定分区键的分区范围,及打算分多少分区:

    如:帐户交易明细表acct_detail.

    根据字段(trans_date)分成一下分区:

    1).分区1:09/01/2003

    2).分区2:10/01/2003

    3).分区3:11/01/2003

    4).分区4:12/01/2003

    5).分区5:01/01/2004

    6).分区6:02/01/2004

    该表明显需要在以后增加分区。

    4.建立分区表空间和分区索引空间

    1).建立表的各个分区的表空间:

    1.分区1:crm_detail_200309

    CREATE TABLESPACE crm_detail_200309 DATAFILE

    ‘/u1/oradata/orcl/crm_detail_20030901.dbf’

    SIZE 2000M EXTENT MANAGEMENT LOCAL UNIFORM size 16M;

    其它月份以后同以上(我在此采用oracle的表空间本地管理的方法)。

    2). 建立分区索引表空间

    1.分区1:index_detail_200309

    CREATE TABLESPACE index_detail_200309 DATAFILE

    ‘/u3/oradata/orcl/index_detail_20030901.dbf’

    SIZE 2000M EXTENT MANAGEMENT LOCAL UNIFORM size 16M;

    5.建立基于分区的表:

    create table table name

    (

    ........

    )

    enable row movment --此语句是能修改行分区键值,也就是如不添加该 句不能修改记录的分区键值,不能使记录分区迁移

    PARTITION BY RANGE (TRANS_DATE)

    (

    PARTITION crm_detail_200309 VALUES LESS THAN

    (TO_DATE (‘09/01/2003’,’mm/dd/yyyy’ ) )

    TABLESPACE crm_detail_200309,

    其他分区.....

    );

    6.建立基于分区的索引:

    create index index_name on table_name (分区键+…)

    global --这里是全局分区索引,也可以建本地索引

    PARTITION BY RANGE (TRANS_DATE)

    (

    PARTITION index_detail_200309 VALUES LESS THAN

    (TO_DATE ('09/01/2003','mm/dd/yyyy' ))

    TABLESPACE index_detail_200309,

    其他索引分区...

    );

    对表的分区就这样完成了,第一次主要确定表分区的分区策约是最重要的,可我觉得对表分区难在以后对表分区的管理上面,因为随着数据量的增加,表分区必然存在删除,扩容,增加等。在这些过程中还牵涉到全局等索引,因为对分区表进行ddl操作为破坏全局索引,故全局索引必须在ddl后要重rebuild.

    solgle.com 版权所有,欢迎分享!!!

    展开全文
  • http://www.knowsky.com/388420.html最近在做一个客户关系治理系统,项目做的到不是非常成功,可还是学到了不少的知识,由于数据量很大,没有...数据库大的优化:采用蔟(clustered tables)及蔟索引(Clustered...

    http://www.knowsky.com/388420.html

    最近在做一个客户关系治理系统,项目做的到不是非常成功,可还是学到了不少的知识,由于数据量很大,没有专门的Oracle数据库人员支持,对数据库优化治理等也只有我这个约懂一点的人上了。在对数据库优化上有一点点心得写出来希望能同大家一起学习和交流。

    数据库大表的优化:采用蔟表(clustered tables)及蔟索引(Clustered Index)

    蔟表和蔟索引是oracle所提供的一种技术,其基本思想是将几张具有相同数据项、并且经常性一起使用的表通过共享数据块(data block)的模式存放在一起。各表间的共同字段作为蔟键值(cluster key),数据库在访问数据时,首先找到蔟键值,以此同时获得若干张表的相关数据。蔟表所能带来的好处是可以减少I/O和减少存储空间,其中我更看重前者。采用表分区(partition)

    表分区技术是在超大型数据库(VLDB)中将大表及其索引通过分区(patition)的形式分割为若干较小、可治理的小块,并且每一分区可进一步划分为更小的子分区(sub partition)。而这种分区对于应用来说是透明的。通过对表进行分区,可以获得以下的好处:

    1)减少数据损坏的可能性。

    2)各分区可以独立备份和恢复,增强了数据库的可治理性。

    3)可以控制分区在硬盘上的分布,以均衡IO,改善了数据库的性能。

    蔟表与表分区技术的侧重点各有不同,前者侧重于改进关联表间查询的效率,而表分区侧重于大表的可治理性及局部查询的性能。而这两项对于我的系统来说都是极为重要。由于本人技术限制,目前尚不确定两者是否可以同时实现,有那位在这方面有经验的给点指导将不胜感激。

    在两者无法同时实现的情况下,应依照需实现的功能有所取舍。综合两种模式的优缺点,我认为采用表分区技术较为适用于我们的应用。

    Oracle的表分区有以下几种类型:

    1)范围分区:将表按某一字段或若干个字段的取值范围分区。

    2)hash分区:将表按某一字段的值均匀地分布到若干个指定的分区。

    3)复合分区:结合了前面两种分区类型的优点,首先通过值范围将表进行分区,然后以hash模式将数据进一步均匀分配至物理存储位置。

    综合考虑各项因素,以第三种类型最为优越。(本人实在技术有限仅采用了第1种范围分区,因为比较简单,便于治理)

    优化的具体步骤:

    1.确定需要优化分区的表:

    经过对系统数据库表结构和字段,应用程序的分析,现在确定那些大表需要进行分区:

    如帐户交易明细表acct_detail.

    2.确定表分区的方法和分区键:

    分区类型:采用范围分区。

    分 区 键:

    按trans_date(交易时间)字段进行范围分区.

    3.确定分区键的分区范围,及打算分多少分区:

    如:帐户交易明细表acct_detail.

    根据字段(trans_date)分成一下分区:

    1).分区1:09/01/2003

    2).分区2:10/01/2003

    3).分区3:11/01/2003

    4).分区4:12/01/2003

    5).分区5:01/01/2004

    6).分区6:02/01/2004

    该表明显需要在以后增加分区。

    4.建立分区表空间和分区索引空间

    1).建立表的各个分区的表空间:

    1.分区1:crm_detail_200309

    CREATE TABLESPACE crm_detail_200309  DATAFILE

    ‘/u1/oradata/orcl/crm_detail_20030901.dbf’

    SIZE 2000M EXTENT MANAGEMENT LOCAL UNIFORM size 16M;

    其它月份以后同以上(我在此采用oracle的表空间本地治理的方法)。

    2). 建立分区索引表空间

    1.分区1:index_detail_200309

    CREATE TABLESPACE index_detail_200309  DATAFILE

    ‘/u3/oradata/orcl/index_detail_20030901.dbf’

    SIZE 2000M  EXTENT MANAGEMENT LOCAL UNIFORM size 16M;

    5.建立基于分区的表:

    create  table  table name

    (

    ........

    )

    enable row movment               --此语句是能修改行分区键值,也就是如不添加该                                     句不能修改记录的分区键值,不能使记录分区迁移

    PARTITION   BY   RANGE  (TRANS_DATE)

    (

    PARTITION     crm_detail_200309  VALUES  LESS THAN

    (TO_DATE (‘09/01/2003’,’mm/dd/yyyy’ ) )

    TABLESPACE   crm_detail_200309,

    其他分区.....

    );

    6.建立基于分区的索引:

    create  index   index_name  on table_name (分区键+…)

    global                                  --这里是全局分区索引,也可以建本地索引

    PARTITION   BY   RANGE  (TRANS_DATE)

    (

    PARTITION     index_detail_200309  VALUES  LESS THAN

    (TO_DATE ('09/01/2003','mm/dd/yyyy' ))

    TABLESPACE   index_detail_200309,

    其他索引分区...

    );

    对表的分区就这样完成了,第一次主要确定表分区的分区策约是最重要的,可我觉得对表分区难在以后对表分区的治理上面,因为随着数据量的增加,表分区必然存在删除,扩容,增加等。在这些过程中还牵涉到全局等索引,因为对分区表进行ddl操作为破坏全局索引,故全局索引必须在ddl后要重rebuild.

    以上写的很乱也很差,希望大家多多谅解和指点。

    展开全文
  • 删除表分区(droppartition)删除表分区包含两种操作,分别是:Ø删除分区:altertable[tbname]droppartition[ptname] UPDATEGLOBALINDEXES;Ø删除子分区:altertable[tbname]dropsubpartition[ptname]...

    删除表分区(drop partition)

    删除表分区包含两种操作,分别是:

    Ø 删除分区:alter table [tbname] drop partition [ptname] UPDATE GLOBAL INDEXES  ;

    Ø 删除子分区:alter table [tbname] drop subpartition [ptname]  UPDATE GLOBAL INDEXES;

    除hash分区和hash子分区外,其它的分区格式都可以支持这项操作。   例如,删除分区:

    JSSWEB> select table_name,partition_name

    2  from user_tab_partitions where table_name='T_PARTITION_LIST';

    TABLE_NAME                     PARTITION_NAME

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

    T_PARTITION_LIST               T_LIST_P1

    T_PARTITION_LIST               T_LIST_P2

    T_PARTITION_LIST               T_LIST_P3

    T_PARTITION_LIST               T_LIST_PD

    JSSWEB> alter table t_partition_list drop partition t_list_p2  UPDATE GLOBAL INDEXES;

    表已更改。

    提示,drop partition时,该分区内存储的数据也将同时删除,例如:

    SSWEB> insert into t_partition_list values (1,'a'); ..........

    --插入一批记录,分布于当前各个分区 ..........

    JSSWEB> commit;

    提交完成。

    JSSWEB> insert into t_partition_list values (1,'a'); ..........

    --插入一批记录,分布于当前各个分区 ..........

    JSSWEB> commit;

    提交完成。

    JSSWEB> select *from t_partition_list;

    ID NAME

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

    1 a          2 b         21 a         22 b

    --单独查询t_list_p3分区,当前有数据

    JSSWEB> select *from t_partition_list partition(t_list_p3);

    ID NAME

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

    21 a

    22 b

    --删除t_list_p3分区,数据会被同时删除

    JSSWEB> alter table t_partition_list drop partition t_list_p3  UPDATE GLOBAL INDEXES;

    表已更改。

    JSSWEB> select *from t_partition_list partition(t_list_p3); select *from t_partition_list partition(t_list_p3)

    * 第 1 行出现错误:

    ORA-02149: 指定的分区不存在

    --删除t_list_p3分区,数据会被同时删除

    JSSWEB> alter table t_partition_list drop partition t_list_p3;

    表已更改。

    JSSWEB> select *from t_partition_list partition(t_list_p3); select *from t_partition_list partition(t_list_p3)

    * 第 1 行出现错误:

    ORA-02149: 指定的分区不存在

    JSSWEB> select *from t_partition_list;

    ID NAME

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

    1 a

    2 b

    由于是ddl操作,这种删除也会是非常迅速的,因此如果你确认某个分区的数据都要被删除,使用drop partition会比delete更加高效。如果你的本意是希望删除掉指定的分区但保留数据,你应该使用merge partition,后面也会讲到。

    同样,如果你在执行该语句时没有指定update indexes子句,也会导致glocal索引的失效,至于local索引嘛,删除分区时对应的索引分区会被同时删除,但其它分区的local索引不会受到影响。

    附录:

    drop partition就是清除分区及其数据和索引

    truncated 就是先清除数据和索引但分区还在

    性能我觉得应该没什么区别~看你的分区是否要保留了

    Oracle数据库表分区

    一.Oracle数据库表分区概念和理解         1.1.已经存在的表没有方法可以直接转化为分区表.         1.2.不在分区字段上建立分区索引,在别的字段上建立索引相当于全局索引.效率 ...

    Oracle基础 表分区

    Oracle基础 表分区 一.表分区 (一)表分区的分类 1.范围分区(range) 2.散列分区(hash) 3.列表分区(list) 4.复合分区:范围-哈希(range-hash).范围-列表( ...

    oracle的表分区

    (1.) 表空间及分区表的概念 表空间: 是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间.   分区表: 当表中的数据量不断增大,查询数据的速度就 ...

    Oracle删除表、字段之前判断表、字段是否存在

    这篇文章主要介绍了Oracle删除表.字段之前判断表.字段是否存在的相关资料,需要的朋友可以参考下 在Oracle中若删除一个不存在的表,如 “DROP TABLE tableName”,则会提示: ...

    DB2删除表分区

    近日,由于部门数据库读库空间过小,提出删除掉两个月之前日志表的分区(数据库分区是按时间月分区),记述如下: 上网搜索资料发现删除表分区大概分这么几步: 1.查询需要删除掉的分区: select t.D ...

    Oracle基础—表分区

    一:表分区的应用场景 用于管理包含大量数据的表. 二:表分区的优点 1.提高数据的可以性 2.减少管理负担 3.改善语句的性能 三:分区的方式:(区间分区.散列分区.列表分区.组合分区) 1.区间分区 ...

    oracle删除表语句

    删除表(记录和结构)的语名delete   ————   truncate      ———— drop DELETE (删除数据表里记录的语句) DELETE FROM表名 WHERE 条件; 注意 ...

    oracle删除表的方法

    1. 删除oracle表中的所有数据而不删除表: 语法: TRUNCATE TABLE table_name; 使用这条语句只是删除表中的全部数据,不是删除表,这种方式也叫做截断表,这种方式比使用de ...

    随机推荐

    WEB ui快速构建

    http://www.runoob.com/bootstrap/bootstrap-ui-editor.html 1http://pingendo.com/ 2http://www.layoutit. ...

    Robotium--scroll操作系列

    上下滚动 scrollDown public boolean scrollDown() Scrolls down the screen. Returns: true if more scrolling ...

    request redirection

    # encoding:utf-8 import reimport jsonimport randomfrom esdapi.config import BASE_URLfrom requests.se ...

    retrofit 使用解析

    retrofit 基础入门:https://www.jianshu.com/p/b64a2de066c3 retrofit 使用详解:https://blog.csdn.net/carson_ho/a ...

    linux 邮件工具利器sendEmail时效超好

    下载:http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz 安装方法: ) Extract the pac ...

    Java并发工具类之CountDownLatch

    CountDownLatch允许一个或则多个线程等待其他线程完成操作. 假如我们有这样的需求:我们需要解析一个excel文件中的多个sheet,我们可以考虑使用多线程,每一个线程解析excel中的一个 ...

    关于 json 单引号和双引号区别--请使用双引号

    双引号才是json 的标准,单引号是不规范的(虽然在js 中是行的通的)! 由于某些原因,在将js json数据传到as 中处理的时候出现了“无效的json解析输入” ,于是查找了一下js参数是否有问 ...

    Excel最多可存多少行,多少列?

    查到的资料如下: Excel 07-2003一个工作表最多可有65536行,行用数字1—65536表示;最多可有256列,列用英文字母A—Z,AA—AZ,BA—BZ,……,IA—IV表示:一个工作簿中 ...

    docker学习笔记-1

    docker学习笔记一:安装 mac安装docker docker官方文档上有这么一段话: Because the Docker daemon uses Linux-specific kernel f ...

    java web学习笔记-jsp篇

    1.java web简介 1.1静态页面与动态页面   表现形式 所需技术 静态网页 网页内容固定,不会更新 html,css 动态网页 网页内容由程序动态显示,自动更新 html,css,DB,ja ...

    展开全文
  • Oracle表分区

    2020-07-15 10:27:19
    Oracle提供的分区方法 1、范围分区:根据中列值的范围将整个分成不同的部分,如:按照时间进行范围分区; 2、列表分区:使用列表值将划分成几部分; 3、哈希分区:使用哈希函数将分成几部分; 3.1哈希...
  • 此文从以下几个方面来整理关于分区表的概念及操作: 1.表空间及分区表的概念 2.表分区的具体作用 3.表分区的优缺点 4.表分区的几种类型及操作方法 5.对表分区的维护性操作. 表空间及分区表的概念 表空间:是一个或...
  • ORACLE 创建表分区

    2020-10-29 22:46:12
     oracle 11g 支持自动分区,不过得在创建表时就... 1、一般一张表超过2G的大小,ORACLE是推荐使用分区表的。  2、这张表主要是查询,而且可以按分区查询,只会修改当前最新分区的数据,对以前的不怎么做删除和修改
  • oracle 表分区

    2014-03-20 14:37:29
    但是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用 SQL DML 命令访问分区后的表时,无需任何修改。(对于高效率查询是有影响,主要差别是对某一分区数据时行查询时和对整体数据进行查询)
  • oracle-表分区-详解

    2017-06-09 16:25:11
    Oracle-分区表解读 Oracle-锁解读 Oracle-等待事件解读 Oracle-procedure/cursor解读 Oracle关于分区的在线文档 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行...
  • Oracle表分区详解

    千次阅读 2019-07-29 14:04:58
    从以下几个方面来整理关于分区表的概念及操作: 表空间及分区表的概念 表分区的具体作用 表分区的优缺点 表分区的几种类型及操作方法 对表分区的维护性操作 1.表空间及分区表的概念 表空间:  是一个或多个...
  • --创建分区表空间 create tablespace CIMISDATA17 datafile '/home/oradata/chawether/CIMISDATA17.dbf' size 100M autoextend on; --添加表分区,并指定分区表空间 alter table SURFCHNHOR add partition SURFCH
  • Oracle修改表及分区表的表空间

    千次阅读 2019-05-23 10:11:00
    一、oracle 移动分区表到指定表空间,及修改表的默认表空间 1、修改分区表的默认表空间:select 'alter table '||table_name||' modify default attributes tablespace TSDAT01' from dba_tables where table_name ...
  • ORACLE数据库表分区

    千次阅读 2013-09-06 17:30:31
    ORACLE数据库表分区 ...1.1 分区表PARTITION table 在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能。 1.1.1 分区表的建立: 某公司的每年产生巨大的销
  • oracle表分区

    2018-10-14 00:38:57
    什么是分区表?就是使用分区技术,将一张大表,拆分成多个表分区,从而提升数据访问的性能,以及日常的可维护性。 分区表的优点:  在维护性方面,可以在分区级别,针对单独的分区,进行索引的维护、数据的加载及...
  • Oracle修改表及分区表的表空间 一、oracle 移动分区表到指定表空间,及修改表的默认表空间 1、修改分区表的默认表空间: select 'alter table '||table_name||' modify default attributes tablespace TSDAT01' ...
  • Oracle分区修改的语句1、增加一个分区ALTER TABLE salesADD PARTITION jan96 VALUES LESS THAN ( '01-FEB-1999' )TABLESPACE tsx;增加一个列表分区ALTER TABLE q1_sales_by_regionADD PARTITION q1_nonmainland ...
  • oracle数据库表分区

    千次阅读 2012-06-28 20:27:26
    摘要:在大量业务数据处理的项目中,可以考虑使用分区表来提高应用系统的性能并方便数据管理,本文详细介绍了分区表的使用。   在大型的企业应用或企业级的数据库应用中,要处理的数据量通常可以达到几十到几百...
  • Oracle数据库表分区

    2017-02-15 14:03:49
    通过分区功能,可以将、索引和索引组织进一步细分为段,从而能够更精确地管理和访问这些数据库对象。Oracle 提供了种类繁多的分区方案以满足每种业务要求。而且,因为在 SQL 语句中分区是完全透明的,所以该...
  • 随着中行数的增多,管理和性能影响也将随之增加。备份将要花费更多时间,恢复也将 要花费更多的...通过把一个中的行分为几个部分,可以减少大型的管理和性能问题,以这种方式划分发表数据的方法称为对表的分区
  • Oracle 清空表分区

    2018-01-26 23:11:16
    ETL重刷201709数据,为了加快插入速度,不与已有数据比较,需要直接清空指定分区的月份数据: ALTER TABLE TF_FIN_CUX_DOC_SRE TRUNCATE PARTITION BALANCE_DT_201709; 接着需要重建索引,不然会报错ORA-...
  • 1.对oracle分区表字段的修改,需要先打开行移动 alter table test_table enable row movement; 2.确认修改后的字段值是否有分区对应 如果修改后的字段值,没有对应的分区,则需要先新增分区,再修改值 alter ...
  • ORACLE分区表、分区索引
  • Oracle表分区

    2018-03-26 14:54:12
    Oracle分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间中。查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询。1.1 表空间是...
  • Oracle 表分区

    2017-03-30 16:26:48
    oracle表分区说明
  • ORACLE分区表、分区索引ORACLE对于分区表方式其实就是将表分段存储,一般普通表格是一个段存储,而分区表会分成多个段,所以查找数据过程都是先定位根据查询条件定位分区范围,即数据在那个分区或那几个内部,然后在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,234
精华内容 22,093
关键字:

oracle修改表分区