`
sangei
  • 浏览: 336508 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
阅读更多

周末作了一天的Partitioned Table旧有资料的归档。

主要是用Partitioned TableExchange功能。

 

基本步骤:

1. 构造能用来做exchangetable A

2. 进行exchange

3. segments从物理上转移到归档用的tablespace.

4. Drop exchange出的Partition

5. drop PartitionTablespace—drop

6. Rebuild A中被mark unusableIndex.

 

ExchangePartitioned Table 技术中一个非常有用的功能,尤其是当需要将旧资料进行归档的时侯。

Exchange的限制:

Range-Hashßà hash

Range-Listßà List

Range/HASH/LIST ßànon-partitioned table

.. .. ..

以上是9i administrator guides 归类出来的,简而言之,就是Partitioned Table中要用来做exchangePartition的类型必须和所交换的Table(Partition)一致。

 

所以在第一步构造用来做exchangeTable的时侯,类型的一致很重要。

比如,如果是Range-Hash Partitioned table要把一个Range Partition exchange出来,那用来交换的Table必须和这个Range Partition 类型一致。

也就是说这个Table必须是Hash Partitioned Table.

 

进行Exchange的语法:

Illustrate:

alter table Part_table exchange partition Part_0710

with table Part_arch0710

including indexes without validation update global indexes;

 

几个重点

1. Including indexes: 表明将Local indexes 一同exchange出来。此选项需要用来与之exchangetable 有建立一样的Index.

2. Without validation: with validation是验证是否rows被正确的Mapping. Without validation则是跳过此验证,在这种情况下,exchange 只做data dictionary的更新(这也是exchange快的原因,因为它根本上只是在data dictionary里将segments的归属作了变更)。这里有一个例外,如果在exchange中的tablePK或者unique constraint,是会强制作with validation,不管有没有指定without validation,这样做是为了保证constraint的完整性。如果要避免这个问题,可以在exchange之前先disable相关的constraint,在完成后再enable

3. Update global indexes:使用此选项可避免Partitioned tableglobal indexexchange后被mark unusable。用这种方式在功能上不会影响到正常业务,但其过程中产生的额外loading会对业务性能的表现产生影响。如果不使用此选项,则必须在exchange后对global index进行rebuild。不过这个选项只会updateexchangePartitiontableglobal index。如上的例子,表Aglobal index是不会被update,所以如果接下来exchange出的Partition的资料还要用的话,依然需要rebuild,但这已经不影响正常业务。

4. Drop exchange出来的Partition所在的Tablespace之前,注意把segments从物理上移动到归档Table A所在的Tablespace。上文提到了exchange只是在data dictionary里对segments的归属作了改变。

5. Exchange空的Partition可以直接DROP,无须带update global index

分享到:
评论

相关推荐

    Partitioned Table and Index Strategies Using SQL Server 2008.docx

    本文将深入探讨如何利用SQL Server 2008的表分区功能来提高效率和查询性能。 分区表的概念是将一个大的表分成多个逻辑部分,每个部分称为一个分区。这种划分基于预定义的分区函数和分区方案,使得可以独立地对单个...

    partitioned:Postgres数据库表分区对Rails的支持

    分区的 分区分区为ActiveRecord添加了帮助,以操纵(读取,创建,更新)ActiveRecord模型,该模型表示可能位于许多数据库表之一中的数据... 还通过Partitioned :: Base.create_many和Partitioned :: Base.update_man

    Oracle数据库精讲之数据库管理_ Oracle数据库管理视频

    第十四讲:oracle Partitioned Tables and Indexes管理 第十五讲:oracle view管理 第十六讲:oracle sequences管理 第十七讲:oracle 触发器管理 第十八讲:oracle 用户管理 第十九讲:oracle 安装部署管理

    sqoop1: import to hive partitioned table

    NULL 博文链接:https://ylzhj02.iteye.com/blog/2051729

    ORACLE原厂资料CONCEPTS

    - 分区表及索引(Partitioned Tables and Indexes):通过将大表和索引分成更小的部分来提高性能和可管理性。 - 信息整合(Information Integration):确保数据库能有效整合来自不同数据源的数据。 4.Oracle...

    oracle 普通表转分区表方式

    Oracle 分区表(Partitioned Table)是一种特殊的表结构,可以根据不同的条件将数据分割成多个独立的分区,以提高查询效率和减少存储空间。本文将详细介绍将 Oracle 普通表转换为分区表的方法。 分区表的优点 1. ...

    oracle查看表空间表信息

    ### Oracle 查看表空间表信息 在Oracle数据库管理中,了解如何查看表空间表信息是一项重要的技能。这有助于DBA(数据库管理员)或开发人员更好地理解数据库结构、优化查询性能以及进行必要的维护工作。 #### 标题...

    Oracle9i模式对象.ppt

    Oracle 9i 提供了多种类型的表,包括 Regular table、Cluster table、Partitioned table、Index-organized table 等。 创建表可以使用 CREATE TABLE 语句,例如: ```sql CREATE TABLE employees( empno NUMBER(4...

    ORACLE完整数据字典

    本文将详细介绍 Oracle 数据字典中的关键表及其字段含义,帮助读者更好地理解和利用这些信息。 #### 二、数据字典中的核心表与字段解释 ##### 2.1 `TAB_COMMENTS` - **表名**:`TAB_COMMENTS` - **描述**:存储表...

    oracle数据库开发规范.pdf

    12. 分区表(partitioned table): 大表的一种优化方式,将数据分布到多个物理分区上。 接下来是关于SQL及PL/SQL编程的知识点: 1. SQL语句类型:包括数据操作语言(DML)如INSERT, UPDATE, DELETE,和数据定义...

    Oracle 大数据量操作性能优化

    例如,添加分区可以使用 alter table add partition 语句,删除分区可以使用 alter table drop partition 语句,Truncate 分区可以使用 alter table truncate partition 语句,合并分区可以使用 alter table merge ...

    Oracle堆表转换成分区表方案

    在Oracle数据库管理中,为了提高查询性能和管理效率,有时需要将现有的堆表(Heap Table)转换为分区表(Partitioned Table)。堆表是Oracle中最常见的存储结构之一,其中的数据没有特定的物理顺序,而分区表则是...

    MySQL的分区表(PartitionedTable)功能详解

    MySQL的分区表(Partitioned Table)功能是一种高级的数据库设计技术,旨在提升数据库性能和简化数据管理。分区的原理是将一个大表物理地划分为更小、更易管理的部分,这样可以加速特定的SQL查询,尤其是那些涉及...

    [Oracle]如何在亿级记录表中创建索引

    SQL> select a.table_name, a.partitioned, b.partition_count, c.column_name 2 from user_tables a, user_part_tables b, user_part_key_columns c 3 where a.table_name = 'STAT_SUBMIT_CENTER' 4 and b.table...

    Oracle分区表用法

    - 分区表(Partitioned Table):当表的数据量增长,查询性能可能会下降。为了解决这个问题,Oracle提供了分区表功能。分区表将逻辑上完整的表在物理上分割成多个部分,称为分区,每个分区存储在不同的表空间中。...

    Oracle9i模式对象.pptx

    Oracle 9i 中有多种类型的表,包括 Regular Table、Cluster Table、Partitioned Table、Index-organized Table 等。每种类型的表都有其特点和应用场景。 4. 创表(CREATE TABLE) CREATE TABLE 语句用于创建一个新...

    oracle数据库对象管理笔记.doc

    * 分区表(Partitioned Table):分区表是一种特殊的表类型,它可以将一个大表分成多个小表,每个小表对应一个分区。 * 索引组织表(Index Organized Table):索引组织表是一种特殊的表类型,它的主键列是有序的,...

    MySql数据分区操作之新增分区操作

    首先,尝试直接通过`ALTER TABLE`语句添加分区到非分区表会导致错误,MySQL会返回`ERROR 1505 <HY000>: Partition management on a not partitioned table is not possible`。正确的方法是创建一个新的具有相同结构...

    oracle约束和索引笔记

    Oracle数据库是世界上最广泛使用的数据库管理系统之一,其在数据管理和性能优化方面有着强大的功能。本笔记主要探讨了两个关键概念:约束和索引,这些都是Oracle数据库中的基础但至关重要的元素。 **1. 约束...

    ORACLE 常用的SQL语法和数据对象

    10. **分区表(Partitioned Table)**:大型表可以通过分区策略(如范围、列表、哈希等)分成较小的、更易管理的部分,提高查询和维护性能。 掌握这些基本概念后,你可以在Oracle数据库中进行高效的数据管理和操作...

Global site tag (gtag.js) - Google Analytics