文档库 最新最全的文档下载
当前位置:文档库 › oracle11g_partition分区技术

oracle11g_partition分区技术

oracle11g_partition分区技术
oracle11g_partition分区技术

oracle partition

针对项目中需对大数据量表进行分区,结合实际情况总结ORACLE PARTITION学习使用教程。

一、Oracle分区简介

ORACLE的分区是一种处理超大型表、索引等的技术。分区是一种“分而治之”的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能。分区通过将操作分配给更小的存储单元,减少了需要进行管理操作的时间,并通过增强的并行处理提高了性能,通过屏蔽故障数据的分区,还增加了可用性。

二、Oracle分区优缺点

优点:

增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;

维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;

均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能;

改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。

缺点:

分区表相关:已经存在的表没有方法可以直接转化为分区表。不过Oracle 提供了在线重定义表的功能。

三、Oracle分区方法

范围分区:

范围分区就是对数据表中的某个值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上。如根据序号分区,根据业务记录的创建日期进行分区等。

Hash分区(散列分区):

散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在I/O设备上进行散列分区,使得这些分区大小一致。

List分区(列表分区):

当你需要明确地控制如何将行映射到分区时,就使用列表分区方法。与范围分区和散列分区所不同,列表分区不支持多列分区。如果要将表按列分区,那么分区键就只能由表的一个单独的列组成,然而可以用范围分区或散列分区方法进行分区的所有的列,都可以用列表分区方法进行分区。

范围-散列分区(复合分区):

有时候我们需要根据范围分区后,每个分区内的数据再散列地分布在几个表空间中,这样我们就要使用复合分区。复合分区是先使用范围分区,然后在每个分区内再使用散列分区的一种分区方法(注意:先一定要进行范围分区)

范围-列表分区(复合分区):

范围和列表技术的组合,首先对表进行范围分区,然后用列表技术对每个范围分区再次分区。与组合范围-散列分区不同的是,每个子分区的所有内容表示数据的逻辑子集,由适当的范围和列表分区设置来描述。(注意:先一定要进行范围分区)

四、Oracle表分区表操作(介绍项目中使用的列表分区,以稽核流水表为例)

--检查数据Partitioning属性是否为true

select * from v$option s where s.parameter = 'Partitioning';

--创建表空间

CREATE TABLESPACE FCMAUDI

DATAFILE'/oracle/……/FCMAUDI01.dbf'SIZE 2048M AUTOEXTEND OFF, '/o racle/……/FCMAUDI03.dbf'SIZE 2048M AUTOEXTEND OFF,

'/oracle/……/FCMAUDI02.dbf'SIZE 2048M AUTOEXTEND OFF EXTENT MANAGEMENT LOCAL AUTOALLOCATE

LOGGING ONLINE

SEGMENT SPACE MANAGEMENT AUTO

--删除表空间

--DROP TABLESPACE FCMAUDI;

--创建分区表

CREATE TABLE DCC_FCMAUDI

(CM_REC_LL NUMBER(*,0) NULL,

CM_TX_LOG_NO VARCHAR2(19) NULL,

.

.

.

.

.

SA_ACCT_NO VARCHAR2(59) NULL,

SA_OPP_ACCT_NO VARCHAR2(59) NULL,

SUB_AREA VARCHAR2(3) NULL)

Partition by list (SUB_AREA)

(Partition p_org1 values('010','011','999'),

partition p_org2 values('110'),

partition p_org3 values('120'),

partition p_org4 values('130'),

partition p_org5 values('140'),

partition p_org6 values('150'),

partition p_org7 values('210'),

partition p_org8 values('212'),

partition p_org9 values('220'),

partition p_org10 values('230'),

partition p_org11 values('310'),

partition p_org12 values('320'),

partition p_org13 values('322'),

partition p_org14 values('330'),

partition p_org15 values('331'),

partition p_org16 values('340'),

partition p_org17 values('350'),

partition p_org18 values('351'),

partition p_org19 values('360'),

partition p_org20 values('370'),

partition p_org21 values('371'),

partition p_org22 values('410'),

partition p_org23 values('420'),

partition p_org24 values('422'),

partition p_org25 values('430'),

partition p_org26 values('440'),

partition p_org27 values('442'),

partition p_org28 values('450'),

partition p_org29 values('460'),

partition p_org30 values('500'),

partition p_org31 values('510'),

partition p_org32 values('520'),

partition p_org33 values('530'),

partition p_org34 values('540'),

partition p_org35 values('610'),

partition p_org36 values('620'),

partition p_org37 values('630'),

partition p_org38 values('640'),

partition p_org39 values('650'),

partition p_org40 values(default))

tablespace FCMAUDI

/

COMMENT ON COLUMN CCB.DCC_FCMAUDI.CM_REC_LL IS'记录长度'; COMMENT ON COLUMN CCB.DCC_FCMAUDI.CM_TX_LOG_NO IS'交易流水号';

.

.

.

COMMENT ON COLUMN CCB.DCC_FCMAUDI. SUB_AREA IS'机构';

--插入一条数据方便说明

insert into CCB_TEST.DCC_FCMAUDI_TEST (SUB_AREA) values ('888') --查询分区数据

select * from DCC_FCMAUDI partition(p_org40);

--修改分区里的数据

update DCC_FCMAUDI partition(p_org40) t set t.CM_TX_LOG_NO = 'abcdfg' where sub_area = '888';

--删除分区里的数据

delete from DCC_FCMAUDI partition(p_org40) t where t.CM_TX_LOG_NO =

'abcdfg' ;

--增加一个分区(新增分区必须没有定义default分区,如定义了可以使用spilt命令拆分分区)

alter table DCC_FCMAUDI add partition p_org41 values ('888') tablespace FCMAUDI ;

--说明:default为除具体值之外的所有情况均存放在default区间例如’888’,’777’

--合并分区

alter table DCC_FCMAUDI merge partitions p_org1,p_org2 into partition

p_org2;

--拆分分区

ALTER TABLE DCC_FCMAUDI SPLIT PARTITION P_ORG2 VALUES ('110')

INTO (partition P_ORG1 TABLESPACE FCMAUDI, partition P_ORG2);

--更改分区名

alter table DCC_FCMAUDI rename Partition P_ORG1 to P_ORG01;

--删除分区

alter table DCC_FCMAUDI drop partition P_ORG01 ;

--交换分区(结构相同两表相互交换不同数据)

create table dcc_fcmaudi

as select * from dcc_fcmaudi

alter table dcc_fcmaudi exchange partition p_org40 with table

dcc_fcmaudi_test1

五、分区索引

表分区索引分为两大类

1.局部索引

2.全局索引

根据自己所用的系统来决定哪种分区索引较适合使用。

阅读相关资料,专家建议:数据仓库应是与局部索引相匹配。OLTP系统应与全局索引相匹配。

因为在OLTP系统中,我们要达到的目的是:快速访问、数据完整性、可用性。全局索引可以做这件事情。OLTP系统的特点与数据仓库非常不同。

我们或许不会做滑动窗口,不会分割分区,不会移动数据等。我们在数据仓库中执行的操作在整体上不会在有效的OLTP系统中完成。

如果我们应用的是全局索引那么对分区任何操作都将引起全局索引失效,那么全局索引必须重构(当然在局部索引中索引也要重构,只是仅仅对当事的那个分区)等等。

现在对dcc_fcmaudi表建立全局索引:

create index index_dcc_fcmaudi_test on dcc_fcmaudi(sub_area)

global partition by range (sub_area)

(partition p_org1 values less than (10),

partition p_org2 values less than (maxvalue))

tablespace idx_fcmaudi

分区相关信息查询

select index_name,partitioned,status from user_indexes;

select index_name,table_name,partitioning_type,locality from

user_part_indexes;

select index_name,partition_name from user_ind_partitions;

当对表分区进行修改,全局索引会失效,须对其重建

ALTER INDEX index_dcc_fcmaudi rebuild partition p_ORG1;

ALTER INDEX index_dcc_fcmaudi rebuild partition p_ORG2;

或者

ALTER TABLE dcc_fcmaud DROP PARTITION p_org39 Update Global Indexes

DISKGEN分区表修复图文教程

DISKGEN分区表修复图文教程 一、硬盘分区 未建立分区的硬盘空间(即自由空间)在分区结构图中显示为灰色,只有在硬盘的自由空间才能新建分区。如图1。 分区参数表格的第0~3 项分别对应硬盘主分区表的四个表项,而将来新建立的第4、5、6…以后的项分别对应逻辑盘D、E、F…等。当硬盘只有一个DOS 主分区和扩展分区时(利用FDISK进行分区的硬盘一般都是这样的),“第0项”表示主分区(逻辑盘C)的分区信息,“第1项”表示扩展分区的信息,“第2、第3项”则全部为零,不对应任何分区,所以无法选中。笔者曾在某网站论坛上发现一张有关DISKMAN疑问的帖子,询问有没有办法将分区参数表格中全部为零的“第2项、第3项”删除掉,这当然是不可能的,发帖者显然对硬盘分区知识缺乏了解。想真正弄懂分区参数表格中各项的意义,必须了解硬盘分区表链结构,建议有兴趣的朋友多找一些相关资料看看。 图1 未建立分区的新硬盘 1 建立主分区 想从硬盘引导系统,那么硬盘上至少需要有一个主分区,所以建立主分区就是我们的第一步。先选中分区结构图中的灰色区域,然后选择分区菜单里面的“新建分区”,此时会要求你输入主分区的大小,确定之后软件会询问是否建立DOS FA T分区,如果选择“是”那么软件会根据你刚刚天写的分区的小进行设置,小于640M时该分区将被自动设为FAT16格式,而大于640M时分区则会自动设为

FA T32格式。如果选择了“否”软件将会提示你手工填写一个系统标志,并在右边窗体的下部给出一个系统标志的列表供用户参考和填写,确定之后主分区的建立就完成了,如图2,主分区就是我们将来的C 盘。 (要建立非DOS分区,还须根据提示设定系统标志,如建立Linux分区,系统标志为“83”)。 图2 建立了一个FA T32主分区 2 建立扩展分区 在建立了主分区之后,接着要建立扩展分区。首先建立扩展分区,先在柱状硬盘空间显示条上选定未分配的灰色区域,选择菜单> 分区> 建扩展分区,之后会有提示要求你输入建的扩展分区的大小,通常情况下我们应该将所有的剩余空间都建立为扩展分区,所以这里可以直接按回车确定。如图3。

深入学习分区表及分区索引(详解oracle分区)

下载的,写的非常好,给大家分享下。 什么时候使用分区: 1、大数据量的表,比如大于2GB。一方面2GB文件对于32位os是一个上限,另外备份时间长。 2、包括历史数据的表,比如最新的数据放入到最新的分区中。典型的例子:历史表,只有当前月份的数据可以被修改,而其他月份只能read-only ORACLE只支持以下分区:tables, indexes on tables, materialized views, and indexes on materialized views 分区对SQL和DML是透明的(应用程序不必知道已经作了分区),但是DDL 可以对不同的分区进行管理。 不同的分区之间必须有相同的逻辑属性,比如共同的表名,列名,数据类型,约束; 但是可以有不同的物理属性,比如pctfree, pctused, and tablespaces. 分区独立性:即使某些分区不可用,其他分区仍然可用。 最多可以分成64000个分区,但是具有LONG or LONG RAW列的表不可以,但是有CLOB or BLOB列的表可以。 可以不用to_date函数,比如: alter session set nls_date_format='mm/dd/yyyy'; CREATE TABLE sales_range (salesman_id NUMBER(5), salesman_name VARCHAR2(30), sales_amount NUMBER(10), sales_date DATE) PARTITION BY RANGE(sales_date) ( PARTITION sales_jan2000 VALUES LESS THAN('02/01/2000'),

硬盘主引导记录(MBR)及其结构详解

硬盘主引导记录(MBR)及其结构详解 硬盘的0柱面、0磁头、1扇区称为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录(MBR)。该记录占用512个字节,它用语硬盘启动时将系统控制权交给用户指定的,并在分区表中登记了的某个操作系统区。 1.MBR的读取 硬盘的引导记录(MBR)是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它。但我们可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取。 用INT13H的读磁盘扇区功能的调用参数如下: 入口参数:AH=2 (指定功能号) AL=要读取的扇区数 DL=磁盘号(0、1-软盘;80、81-硬盘) DH=磁头号 CL高2位+CH=柱面号 CL低6位=扇区号 CS:BX=存放读取数据的内存缓冲地址 出口参数:CS:BX=读取数据存放地址 错误信息:如果出错CF=1 AH=错误代码 用DEBUG读取位于硬盘0柱面、0磁头、1扇区的操作如下: A>DEBUG -A 100 XXXX:XXXX MOV AX,0201 (用功能号2读1个扇区) XXXX:XXXX MOV BX,1000 (把读出的数据放入缓冲区的地址为CS:1000) XXXX:XXXX MOV CX,0001 (读0柱面,1扇区) XXXX:XXXX MOV DX,0080 (指定第一物理盘的0磁头) XXXX:XXXX INT 13 XXXX:XXXX INT 3 XXXX:XXXX (按回车键) -G=100 (执行以上程序段) -D 1000 11FF (显示512字节的MBR内容)

硬盘分区表错误建议用Disk Genius来进行修复

硬盘分区表错误建议用Disk Genius来进行修复。是一款小巧的硬盘分区表维护工具,大小只有108KB,可是功能却非常强大。Disk Genius中最重要的一项功能就是重建分区表了。如果你的硬盘分区表被分区调整软件(或病毒)严重破坏,引起硬盘和系统瘫痪,Disk Genius可通过未被破坏的分区引导记录信息重新建立分区表。在菜单的工具栏中选择“重建分区”,Disk Genius即开始搜索并重建分区。Disk Genius将首先搜索0柱面0磁头从2扇区开始的隐含扇区,寻找被病毒挪动过的分区表。接下来搜索每个磁头的第一个扇区。搜索过程可以采用“自动”或“交互”两种方式进行。自动方式保留发现的每一个分区,适用于大多数情况。交互方式对发现的每一个分区都给出提示,由用户选择是否保留。当自动方式重建的分区表不正确时,可以采用交互方式重新搜索,只要能重新找回分区,上面的数据都不会丢失EasyRecovery Professional 一个很强悍的数据恢复软件是威力非常强大的硬盘数据恢复工具。能够帮你恢复丢失的数据以及重建文件系统。EasyRecovery不会向你的原始驱动器写入任何东东,它主要是在内存中重建文件分区表使数据能够安全地传输到其他驱动器中。你可以从被病毒破坏或是已经格式化的硬盘中恢复数据。该软件可以恢复大于8.4GB的硬盘。支持长文件名。被破坏的硬盘中像丢失的引导记 录、BIOS参数数据块;分区表;FAT表;引导区都可以由它来进行恢复。https://www.wendangku.net/doc/1710361809.html,/soft/11308.htm https://www.wendangku.net/doc/1710361809.html,/soft/35758.htm这个是他的汉化补丁汉化说明:运行汉化补丁后,请在Properties 中的Language 选项中选择“简体中文”并在出现的对话框中选Yes,然后重新启动程序即可看到中文界面。这个版本解决了部分扫描报告乱码的问题。参考资料:https://www.wendangku.net/doc/1710361809.html,/question/25599238.html 电脑公司特别版GHOST7.6 或者7.8 中自己带的工具中有一个叫分区修复的或者下载个分区修复大师都可以帮你找会误删的分区前些天电脑当机,拆下主板仔细查看,发现在靠近CPU槽的一个电焊接点熔化脱落,估计问题不大,拿到珠江路花25元请人焊好,换了一个电容修好了,回来后发现显示器又点不亮了,又将机器全部拆散,逐个配件的检查,再仔细查看显卡背面,发现有一个零件(不知是电阻还是电容)从中间断裂,手边正好有一块显卡,换上后显示器正常显示,昨天下班回家机器又不能进操作系统了,怀疑是主硬盘分区表被破坏,用diskgen修复,一切正常,再把前几日拆下的一块80GB的硬盘装上,该硬盘分区表还是坏的,进入XP,打开“我的电脑”,只有一个盘符,双击后系统提示“硬盘未格式化”,用手边可启动光盘进入DOS,运行diskgen,选第二硬盘,一选就报错,提示第一分区错误是否修复,我选了"否",第二扇区柱面错误是否修复,选"否",中间的界面上显示的硬盘容量是32GB,80GB只识别32GB,不可想象的现象,这块硬盘中全部都是割舍不下的资料。准备试一下,先用diskgen的重建分区表,不理会DISKGEN工具报错的提示,一切报错及修复都选“否”,只在最后一步,“重建分区表”时选“是”,退出时保存修改。重启进入XP,打开“我的电脑”,看到三个分区,只恢复了两个分别为15GB的分区的数据,分区中的文件正常,第三个分区双击时提示“硬盘未格式化”,40G的数据啊还能再回来吗?再试,问题依然未解决,但发现启动光盘上有个叫DM工具,很久就听说过,但从来未用过,就是它了。写到这,前面写的都可以不管它了,下面是我在连续地高强度的试验了近五个小时后得出的最佳步骤,全部过程5分钟左右昨夜1:30分最后一次执行的恢复步骤:1、光盘启动进入DOS,进入DISKGEN(从网上拉一个),恢复分区表(因对硬盘分区写操作过,所以要恢复第一次写操作前保存的分区表信息),保存退出。2、进入DM,有一大堆英文,看不懂,没关系(其实有没有关系已不重要了),看到有个叫INSTALL的英文,回车,Install下,其它就不要再做了,注意:不要对任何弹出的“YES”进行确认,退出dm。为什么要用dm,原因是我的80G的硬盘,DISKGEN只能识别32G, 用DM引导区的总柱面信息从3826修正到9729,使DISKGEN能正确识别80G. 3、进入DISKGEN,看到容量已恢复为80G,重建分区,重写引导区,保存,退出。4、进入XP,

oracle 分区技术总结

Oracle分区技术总结 电信事业部 张雷

一.分区概述: 为了简化数据库大数据量的管理,ORACLE推出了分区选项。分区将表或索引分离在若干不同的表空间上,用分而治之的方法来支撑无限膨胀的大表和索引,从而提高大表和索引在物理一级的可管理性。将它们分割成较小的分区可以改善表和分区的维护、备份、恢复、事务及查询性能。 二.分区的特点: ◆所有的分区的逻辑属性是相同的,但他们的物理属性可以不同。 ◆分区的剪枝(Partition Pruning) Oracle server 可以自动识别分区,根据select 语句所指定的选择条件,只查询 有用的分区。如果语句的条件中对分区字段使用了函数,优化器则不能进行分区剪 枝,但to_date函数除外。 ◆分区的优点 (1) 高可用性:如果表的一个分区由于系统故障而不能使用,表的其余好的分区仍 然可以使用; (2) 减少关闭时间:如果系统故障只影响表的一部分分区,那么只有这部分分区需 要修复,故能比整个大表修复花的时间更少; (3) 维护轻松:对于大型的历史数据表,将其分区,分别管理和方便地添加和删除。; (4) 均衡I/O:可以把表的不同分区分配到不同的磁盘来平衡I/O改善性能; (5) 改善性能:对大表的查询、增加、修改等操作可以分解到表的不同分区来并行 执行,可使运行速度更快; (6) 基于分区的 join 操作,会提高查询性能 (7) 分区对用户透明,最终用户感觉不到分区的存在。 三.分区的方法: ◆Range Partitioning (范围分区)

范围分区就是对数据表中的某个值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上。如根据城市分区,根据时间进行分区等。实现方法就是在CREATE TABLE命令中增加PARTITION BY RANGE子句。 例如:CREATE TABLE UNITELE.BB_ACCOUNT_INFO_T ( ACCOUNT_ID NUMBER(10), CITY_CODE V ARCHAR2(8 BYTE) NOT NULL, CUSTOMER_ID NUMBER(10) NOT NULL, MAIL_SERVICE NUMBER(4), UNIT_COUNT NUMBER(8) DEFAULT 0, REMARK V ARCHAR2(256 BYTE), IF_VALID NUMBER(2) DEFAULT 1, ACCOUNT_FA VOUR_ID NUMBER(8) DEFAULT 0 NOT NULL ) TABLESPACE TS_TAB_BASE PARTITION BY RANGE (CITY_CODE) ( PARTITION PART840 V ALUES LESS THAN ('841'), PARTITION PART_OTHER V ALUES LESS THAN (MAXV ALUE) ); 分区的字段可以是一个列,也可以是多个列。 ★范围分区的特点 a、Range分区特别适合于按时间周期进行数据的存储。日、周、月、年等。 b、数据管理能力强,可以进行数据迁移,数据备份以及数据交换的操作。 c、范围分区的数据可能分布不均匀。 d、范围分区与记录值相关,实施难度和可维护性相对较差。有可能出现一个表分 成上万个分区,还可能出现后期拆分分区,增加分区的操作。 Hash Partitioning(散列分区);

深入理解硬盘分区表

深入理解硬盘分区表 相信听说过硬盘MBR、硬盘分区表、DBR的朋友一定都不少。可是,你清楚它们分别起什么作用吗?它们的具体位置又在哪里呢?硬盘上的MBR只有一份吗?什么是硬盘逻辑锁?如何制造和破解它呢??别急,让我们一步步来搞清楚吧! ==必备基础知识:== 以下先介绍一下有关扇区编号的基本知识:介绍一下有关硬盘扇区编号规则的3个易混淆的术语“物理扇区编号”、“绝对扇区编号”和“逻辑扇区编号”。 我们都知道硬盘扇区的定位有两种办法: 1、直接按柱面、磁头、扇区3者的组合来定位(按这种编号方式得到的扇区编号称为物理扇区编号); 2、按扇区编号来定位(又分“绝对扇区编号“和“逻辑扇区编号“两种)。 这两种定位办法的换算关系如下图:(设图中所示硬盘每道扇区数均为63)

如图所示,由于目前大多数硬盘采用的是一种“垂直分区结构“,故左图一磁头数为2、盘片数为1的硬盘,图中0磁头所对扇区的表示方法就有2种,即:0柱面0磁头1扇区=绝对0扇区,而1磁头所对扇区的表示方法也有2种,即:1柱面0磁头1扇区=绝对63扇区。如果是如右图所示磁头数为4、盘片数为2的硬盘,那么则顺着垂直于盘片的箭头线方向进行如图的绝对扇区的编号。 以上,我们说了物理扇区、绝对扇区的编号方式,而逻辑扇区编号由于是操作系统采用的扇区编号方式,而操作系统只能读取分区内部的数据内容,故逻辑扇区是从各分区内的第一个扇区开始编号,如我们下文对mbr的说明可以知道:mbr这个扇区所在硬盘磁道是不属于分区范围内的,紧接着它后面的才是分区的内容,因此一般来说绝对63扇区= c:分区逻辑1扇区。以下让我们总结一下3种编号方式的不同: 编号方式表示方法采用该种方式编号的对象起始编号 物理扇区编号 0柱面0磁头1扇区 BIOS内置中断服务程序 0柱面0磁头1扇区 绝对扇区编号绝对X扇区人们为方便所采用的办法绝对0扇区

用Winhex手动修复分区表以提取数据

一、初步应用——双分区恢复实例及分析 (一)、现场重现: 提示,切勿随意使用自己的硬盘进行试验,切记试验前保存重要数据。对于移动硬盘,损坏往往发生于硬盘传输数据中断电。现在我将一个有问题的移动硬盘接到电脑上,在“计算机管理”-->“磁盘工具”中我们可以看到这个未被初始化的磁盘显示为黑色(打开磁盘工具时它会提示你要初始化,不理它,点“取消”),在“计算机”中也找不到这个磁盘。 (二)、手动修复: (阅读有困难的朋友可以先读完第三节再回过头来看这一节,本节的另一个作用是让新手对Winhex界面有一个初步了解) 1、打开Winhex-->菜单栏-->选择“工具”-->打开磁盘(F9)-->选择要修复的硬盘,这里是HD2。

2、打开之后图中显示从0000H-->01ffH(16进制)之间的数据全部为0。 现在我从一个运转良好的硬盘分区表中将0000H-->01bdH之间的数据复制并粘贴到损坏硬盘的相应位置。

操作步骤为:在良好硬盘中拉选0000-->01bd之间的区块,被选中区块呈亮蓝色;复制选块; 接下来在损坏硬盘中拉选相应区域,将光标定位至0000;右键-->编辑-->粘贴板数据-->写入。将01fe,01ff填写为55AA,到这里一定保存。 点击黄色区域的图标并转移至63号扇区菜单“视图”-->模板管理(Alt+F12)-->NTFS引导扇区。

打开如下图,并记录黄色方框内的两个数值(63和63777986)

63+63777986+1=63778050,跳转至63778050扇区。 稍微向下滚动一点,看到那个粉色框标识出的55AA了嘛?往前找到黄色框内的部分,显示为3F 00 00 00,将其进行反向排列,变为00 00 00 3F于是3F(十六进制)=63(十进制)——我们称这个数为相对偏移量。 接下来跳转至63778050+63=63778113扇区,我们又发现了一个EB开头的扇区 再次选择菜单“视图”-->模板管理(Alt+F12)-->主引导记录NTFS引导扇区。打开如下图,同样记录一下黄色方框中的数值(63和92518271)

oracle 表分区 partition技术

oracle 表分区 partition技术(转) 2009年06月12日星期五 11:23 一下内容转至:https://www.wendangku.net/doc/1710361809.html,/blog/166078 一、Oracle分区简介 ORACLE的分区是一种处理超大型表、索引等的技术。分区是一种“分而治之”的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能。分区通过将操作分配给更小的存储单元,减少了需要进行管理操作的时间,并通过增强的并行处理提高了性能,通过屏蔽故障数据的分区,还增加了可用性。 二、Oracle分区优缺点 优点:λ 增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用; 维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能; 改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。缺点:λ 分区表相关:已经存在的表没有方法可以直接转化为分区表。不过 Oracle 提供了在线重定义表的功能。 三、Oracle分区方法 范围分区:λ 范围分区就是对数据表中的某个值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上。如根据序号分区,根据业务记录的创建日期进行分区等。 Hash分区(散列分区):λ 散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在I/O 设备上进行散列分区,使得这些分区大小一致。 λ List分区(列表分区): 当你需要明确地控制如何将行映射到分区时,就使用列表分区方法。与范围分区和散列分区所不同,列表分区不支持多列分区。如果要将表按列分区,那么分区键就只能由表的一个单独的列组成,然而可以用范围分区或散列分区方法进行分区的所有的列,都可以用列表分区方法进行分区。 范围-散列分区(复合分区):λ 有时候我们需要根据范围分区后,每个分区内的数据再散列地分布在几个表空间中,这样我们就要使用复合分区。复合分区是先使用范围分区,然后在每个分区内再使用散列分区的一种分区方法(注意:先一定要进行范围分区) 范围-列表分区(复合分区):λ 范围和列表技术的组合,首先对表进行范围分区,然后用列表技术对每个范围分区再次分区。与组合范围-散列分区不同的是,每个子分区的所有内容表示数据的逻辑子集,由适当的范围和列表分区设置来描述。(注意:先一定要进行范围分区) 四、Oracle表分区表操作 --Partitioning 是否为true select * from v$option s order by s.PARAMETER desc

硬盘分区表知识——详解硬盘MBR .

硬盘是现在计算机上最常用的存储器之一。我们都知道,计算机之所以神奇,是因为它具有高速分析处理数据的能力。而这些数据都以文件的形式存储在硬盘里。不过,计算机可不像人那么聪明。在读取相应的文件时,你必须要给出相应的规则。这就是分区概念。 分区从实质上说就是对硬盘的一种格式化。当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即Master Boot Record,一般简称为MBR)和引导记录备份的存放位置。而对于文件系统以及其他操作系统管理硬盘所需要的信息则是通过以后的高级格式化,即Format命令来实现。面、磁道和扇区硬盘分区后,将会被划分为面(Side)、磁道(Track)和扇区(Sector)。需要注意的是,这些只是个虚拟的概念,并不是真正在硬盘上划轨道。 先从面说起,硬盘一般是由一片或几片圆形薄膜叠加而成。我们所说,每个圆形薄膜都有两个“面”,这两个面都是用来存储数据的。按照面的多少,依次称为0面、1面、2面……由于每个面都专有一个读写磁头,也常用0头(head)、1头……称之。按照硬盘容量和规格的不同,硬盘面数(或头数)也不一定相同,少的只有2面,多的可达数十面。各面上磁道号相同的磁道合起来,称为一个柱面(Cylinder)。 上面我们提到了磁道的概念。那么究竟何为磁道呢?由于磁盘是旋转的,则连续写入的数据是排列在一个圆周上的。我们称这样的圆周为一个磁道。如果读写磁头沿着圆形薄膜的半径方向移动一段距离,以后写入的数据又排列在另外一个磁道上。根据硬盘规格的不同,磁道数可以从几百到数千不等;一个磁道上可以容纳数KB的数据,而主机读写时往往并不需要一次读写那么多,于是,磁道又被划分成若干段,每段称为一个扇区。一个扇区一般存放512字节的数据。扇区也需要编号,同一磁道中的扇区,分别称为1扇区,2扇区…… 计算机对硬盘的读写,处于效率的考虑,是以扇区为基本单位的。即使计算机只需要硬盘上存储的某个字节,也必须一次把这个字节所在的扇区中的512字节全部读入内存,再使用所需的那个字节。不过,在上文中我们也提到,硬盘上面、磁道、扇区的划分表面上是看不到任何痕迹的,虽然磁头可以根据某个磁道的应有半径来对准这个磁道,但怎样才能在首尾相连的一圈扇区中找出所需要的某一扇区呢?原来,每个扇区并不仅仅由512个字节组成的,在这些由计算机存取的数据的前、后两端,都另有一些特定的数据,这些数据构成了扇区的界限标志,标志中含有扇区的编号和其他信息。计算机就凭借着这些标志来识别扇区。硬盘的数据结构在上文中,我们谈了数据在硬盘中的存储的一般原理。为了能更深入地了解硬盘,我们还必须对硬盘的数据结构有个简单的了解。硬盘上的数据按照其不同的特点和作用大致可分为5部分:MBR区、DBR区、FAT区、DIR区和DATA区。

用DiskGenius原DiskMan修复损坏的硬盘分区

前段时间,遇到有两个硬盘不能正常打开。都是挂在同一台电脑上,忽然停电后就不能打开 了。通过查看原来分区表已损坏,连PQmagic都不能进去,总是提示错误就退出。只好用DiskGenius(下面称为DG)来试一下,以前试用过这个软件,觉得分区功能比PQmagic还好,我试过一Vista系统的硬盘,PQ不能识别分区,但DiskGenius就可以轻松搞掂,那时用的 还是Dos版本。但以下介绍的是使用Windows版本,而且都是在Windos XP下运行修复。第一步,下载DiskGenius 在一台可以正常开机启动Window XP的电脑上在网上下载DiskGenius,我用的是 V3.1.0412 Beta 3的版本;也可以把程序复制到U盘,通过U盘复制到另一台正常的Windows系统电脑上面,关掉电脑。 第二步,将需要维修的硬盘挂在电脑上 可以将损坏的硬盘设置为从盘或者是另外一个硬盘线(IDE2)的主盘。要记住是IDE2的接口上,不然启动不了系统的。 第三步,开机启动WindowsXP,启动DiskGenius 看到HD1:Maxtor这个设备吗?这就是要修复的硬盘空间是60G,可以看到磁盘显示空闲,什么数据都没有,分区表已经损坏了。 下一步,搜索分区 点击修复的硬盘,然后点击工具栏上的“搜索分区”按钮,让程序自动搜索分区表。 第四步,设置搜索分区参数

由于是整个硬盘的分区都丢失,所以搜索范围选择“整个硬盘”,搜索方式选择“自动”,然后点击“开始搜索”按钮。 第五步,确认搜索分区 当点击“开始搜索”按钮后,程序会自动查找硬盘损坏的分区,并将修复结果显示出来。第六步,查看分区文件信息

oracle表分区的几种方法以及维护

表分区有以下优点: 1、数据查询:数据被存储到多个文件上,减少了I/O负载,查询速度提高。 2、数据修剪:保存历史数据非常的理想。 3、备份:将大表的数据分成多个文件,方便备份和恢复。 4、并行性:可以同时向表中进行DML操作,并行性性能提高。 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。 Oracle中提供了以下几种表分区: 一、范围分区:这种类型的分区是使用列的一组值,通常将该列成为分区键。示例1:假设有一个CUSTOMER表,表中有数据200000行,我们将此表通过CUSTOMER_ID进行分区,每个分区存储100000行,我们将每个分区保存到单独的表空间中,这样数据文件就可以跨越多个物理磁盘。下面是创建表和分区的代码,如下: CREATE TABLE CUSTOMER ( CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY, FIRST_NAME VARCHAR2(30) NOT NULL, LAST_NAME VARCHAR2(30) NOT NULL, PHONE VARCHAR2(15) NOT NULL, EMAIL VARCHAR2(80), STATUS CHAR(1) ) PARTITION BY RANGE (CUSTOMER_ID) ( PARTITION CUS_PART1 VALUES LESS THAN (100000) TABLESPACE CUS_TS01, PARTITION CUS_PART2 VALUES LESS THAN (200000) TABLESPACE CUS_TS02 ) 在创建表进行分区时,表空间必须先存在,而且建议将不同的分区放入不同的表空间中。 示例2:假设有ORDER_ACTIVITIES表,每6个月对订单进行清理,我们可以按月份对表进行分区,分区代码如下: CREATE TABLE ORDER_ACTIVITIES ( ORDER_ID NUMBER(7) NOT NULL, ORDER_DATE DATE, TOTAL_AMOUNT NUMBER, CUSTOTMER_ID NUMBER(7), PAID CHAR(1) ) PARTITION BY RANGE (ORDER_DATE) ( PARTITION ORD_ACT_PART01 VALUES LESS THAN

GPT磁盘各分区作用详解

用于引导Windows的GPT磁盘(预装Win8电脑)各分 区作用详解 随着预装Win8电脑大量涌向市场,UEFI+GPT这一标准组合受到了更大范围的关注。UEFI+GPT无疑是未来的发展趋势,所以我们有必要先来了解一下用于引导Windows的GPT分区结构的磁盘中一些特殊分区的作用。 使用Windows安装程序默认创建的分区 当我们在GPT中安装Windows8/7,并且使用Windows安装程序对硬盘进行重分区操作 时默认将创建下表所示的几个分区。

的方法可参考《Diskpart工具应用两则:MBR/GPT分区转换& 基本/动态磁盘转换》。 当Windows 8 系统无法正常启动时也会自动故障转移至WinRE。 在Windows7中WinRE和Windows安装分区在同一个分区,并没有单独拿出来。Win8 中微软默认将WinRE和Windows 安装分区分离,目的应该是最大程度保证WinRE的可靠性。在MBR硬盘上安装Windows 8时,你会发现系统保留分区的大小由Win7时的100MB 扩大到了350MB,这多出来的空间就是用于保存WinRE映像的。 第二个分区是存放系统引导文件的分区,这是实现UEFI引导所必须的分区。 第三个MSR分区,这是微软保留分区,目前尚不清楚其具体作用。已知将基本磁盘转换为动态磁盘是该分区将发挥作用。 第四个就是我们安装系统是要选择的目标分区。其实际容量=你指定的容量-前面几个分区 容量。 如果只考虑系统的正常启动,那么EFI系统分区(第二个)和Windows安装分区(第四个分区)这两个分区是必须的。 预装Windows 8的品牌机默认分区(以联想某型号为例) 在预装Win8的品牌机中同样会看到上表中所示的这些分区,不过其大小可能会有所不同,同时你可能还会看到其他的隐藏分区。下表是联想某一型号预装Win8电脑默认的分区情况。

手工修复电脑硬盘分区表DBR

手工修复电脑硬盘分区表DBR WinHex恢复打开分区提示未格式化(Fat32篇),造成提示未格式化的原因有很多种,此篇文章只是其中一种,DBR丢失算是比较简单的了。硬盘有两个FAT32逻辑分区打不开了,双击之后跳出如下图所示的提示信息,问如何恢复数据。 出现这样的提示,首先可能是分区表参数有误,例如分区类型标识错误,本来是FAT32标记为NTFS,系统按NTFS来解读,发现分区不符合NTFS格式,从而提示未格式化;或是分区DBR位置信息错误,OS找不到DBR,无法解释文件系统,也会提示分区未格式化。遇到这种情况用软件或手工修复分区表就解决了,具体操作请参阅我的另一篇帖子《手工恢复硬盘分区表记述》。 其次可能是分区DBR受损,BPB中存储的该分区重要的参数错误或者丢失,使得OS无法解释文件系统,只能当作RAW格式处理。本文主

要探讨第二种情形,有关的背景知识DBR、BPB的定义以及FAT文件系统的解析请参阅附件里的资料,这里不再赘述。 一般情况下,FAT32分区的DBR备份存储在分区6号扇区,将备份扇复制到0号扇(即DBR扇区)也就解决了,但是这位朋友不幸的是他的分区DBR备份也损坏了(FAT32的DBR和备份扇区相隔不远,确实容易一损俱损,这一点不如NTFS安全).。 在这种情况下可以试试EasyRecovery 的Advanced Recovery(见5楼),不行的话就用Raw Recovery。Advanced Recovery 有时不太可靠,而Raw Recovery恢复出来的数据杂乱无章,文件名、目录结构丢失,难以整理。所以我考虑手工重建分区DBR。 首先,你需要一个没有问题的FAT32分区,以它的分区DBR作为模板,注意该分区不能存有重要数据,因为要修改分区重要参数,可能会造成分区无法访问。运行十六进制编辑器winhex,点击“工具”菜单,选择“磁盘编辑器”,在弹出的窗口中选中“物理媒介”下的对应磁盘,这里选择“HD0...”作为例子。

ORACLE分区表、分区索引

深入学习Oracle分区表及分区索引 关于分区表和分区索引(About Partitioned Tables and Indexes)对于10gR2而言,基本上可以分成几类: ?Range(范围)分区 ?Hash(哈希)分区 ?List(列表)分区 ?以及组合分区:Range-Hash,Range-List。 对于表而言(常规意义上的堆组织表),上述分区形式都可以应用(甚至可以对某个分区指定compress属性),只不过分区依赖列不能是lob,long之类数据类型,每个表的分区或子分区数的总数不能超过1023个。 对于索引组织表,只能够支持普通分区方式,不支持组合分区,常规表的限制对于索引组织表同样有效,除此之外呢,还有一些其实的限制,比如要求索引组织表的分区依赖列必须是主键才可以等。 注:本篇所有示例仅针对常规表,即堆组织表! 对于索引,需要区分创建的是全局索引,或本地索引: l 全局索引(global index):即可以分区,也可以不分区。即可以建range分区,也可以建hash分区,即可建于分区表,又可创建于非分区表上,就是说,全局索引是完全独立的,因此它也需要我们更多的维护操作。 l 本地索引(local index):其分区形式与表的分区完全相同,依赖列相同,存储属性也相同。对于本地索引,其索引分区的维护自动进行,就是说你add/drop/split/truncate表的分区时,本地索引会自动维护其索引分区。 Oracle建议如果单个表超过2G就最好对其进行分区,对于大表创建分区的好处是显而易见的,这里不多论述why,而将重点放在when以及how。 ORACLE对于分区表方式其实就是将表分段存储,一般普通表格是一个段存储,而分区表会分成多个段,所以查找数据过程都是先定位根据查询条件定位分区范围,即数据在那个分区或那几个内部,然后在分区内部去查找数据,一个分区一般保证四十多万条数据就比较正常了,但是分区表并非乱建立,而其维护性也相对较为复杂一点,而索引的创建也是有点讲究的,这些以下尽量阐述详细即可。 range分区方式,也算是最常用的分区方式,其通过某字段或几个字段的组合的值,从小到大,按照指定的范围说明进行分区,我们在INSERT数据的时候就会存储到指定的分区中。 List分区方式,一般是在range基础上做的二级分区较多,是一种列举方式进行分区,一般讲某些地区、状态或指定规则的编码等进行划分。 Hash分区方式,它没有固定的规则,由ORACLE管理,只需要将值INSERT进去,ORACLE 会自动去根据一套HASH算法去划分分区,只需要告诉ORACLE要分几个区即可。 WHEN 一、When使用Range分区 Range分区呢是应用范围比较广的表分区方式,它是以列的值的范围来做为分区的划分条件,将记录存放到列值所在的range分区中,比如按照时间划分,2008年1季度的数据

用Diskedit修复分区表(图解教程)

用Diskedit修复分区表(图解教程) 我们经常在使用电脑的时候,由于非法操作和病毒的侵袭会导致系统不能引启,驱动器丢失,其实就是有可能就是分区表损坏,遇到这种情况,很多朋友都选择重新分区格式化磁盘加以修复,其实这种“修复”算不得什么修复,因为之前的内容不存在了,这就是为什么很多朋友当硬件工作者只会装系统的原因。诚然,分区装系统的确在很多时候就是最简单且笼统的方式,但是,如果我们一个盘里有很多重要的资料的时候,我们还会这样做吗?今天我们来讲一下硬盘的分区表,来看看解决上面遇到的办法我们有无最佳的有效的解决途径。 其实分表区就是存在在磁盘里的0柱面0磁头1扇区的位置,是一个64字节大小的“数据库”该数据库里记录了,我们分区的一些起始信息,很显然他的重要性勿庸至疑,你想想“盘”都没有了,盘里的资料还存在吗?可见分区表的一重要性了。今天我们一起来探奧秘。 我们用诺顿的diskedit来打开一个硬盘的分区表来一窥其貌。 简单地说一下这个软件的使用方法,虽说英文但一点也不困难。这是一个纯DOS软件如果你也想用的话,你可以点此下载,把它放到你的启动盘里到DOS下面去运行它。 该界面的大意是。你正工作在一个只读的模式下,如果你要更改些什么东西,你必须到tools里去掉只读属性。在此我们按任意键跳过。接着看下面。按ALT+O选择你要编辑查看的磁盘。 这里要注意以下几点。左边一定要选择你的硬盘,而右边要选择你的物理磁盘。如图所示

分区表一般位于硬盘某柱面的0磁头1扇区.要判定是不是分区表,就看其后紧邻的两个是不是 “55AA”,若是,则为分区表.如图所示,其实这就是分区表,我们说过分区表只有64字节所以,只有80到55AA这一段为我们的分区表,我们要讲解的就是这一部分。 好了,既然认识了分区表我们就来看看,常见的分区表故障吧。这个表里的信息是用16进程的方式进行表示的,有一定的死记硬背形。 我们先来看第一个标识符80.这是一个活动分区标志符,有的书中称为激活分区,有的叫主DOS分区有的叫引导分区一般性况下(这个情况起码有99%,你的系统在C盘吗?在哪么就属于此例),如果这个标识被篡改。相信你的电脑一定不能启动,这个标识符为固定的,如果你的硬盘里存在系统,这个是一定存在的。我们故意把它改成其00试一下,有什么故障。前面我们说过,要修改分区表,你得去掉只读属性。我们来去掉。ALT+T指打开tools,选N,用空格去掉Read only前面的叉,按ALT+S保存。于是你就可以随地更改你的分区表了。

易我分区表医生使用教程解析

易我分区表教程 2010-01-26 19:30 《易我分区表医生》是一款修复硬盘分区的软件,使用该工具可以轻易的恢复删除和丢失的分区。下面,我们就来看看如何使用它对我们的分区表等进行修复。 一.有关MBR、分区表、DBR的基本知识 1.硬盘MBR(硬盘主引导记录)及硬盘分区表介绍 硬盘MBR就是我们经常说的“硬盘主引导记录”,它是在对硬盘进行分区的时候写入硬盘的。以下是MBR的组成: 这3部分的大小加起来正好是512字节=1个扇区(硬盘每扇区固定为512个字节),因此,人们又形象地把MBR称为“硬盘主引导扇区”。 2.硬盘DBR(DOS引导记录)介绍 硬盘(这里硬盘指逻辑磁盘,不同于物理磁盘,所有分区内逻辑扇区,都从“0”开始编号,直到最大值-1,涵盖整个分区)的0扇区叫做DOS引导扇区,又称为BOOT区。由FORMAT高级格式化命令将DOS引导记录(DBR)写在该扇区,主要功能是完成系统的自举。 综上所述,我们知道硬盘MBR负责总管硬盘分区,只有分区工具才能对它进行读写;而DBR则负责管理某个具体的分区,它是用操作系统的高级格式化命令(如FORMAT)来写入硬盘的。在系统启动时,最先读取的硬盘信息是MBR,然后由MBR内的主引导程序读出DBR,最后才由DBR内的DOS引导代码读取操作系统的引导程序,其中任何一个环节出了问题,操作系统都无法正常启动成功,如果是MBR部分出了问题即使只是”55AA”标志字丢失或被改为其他值,通常都会出现“无效分区表“、逻辑盘丢失、启动死机等现象;而如果是DBR部分出了问题,通常会出现“未格式化的分区”的错误提示。 近距离观察MBR、DBR: 现在我们用《易我分区表医生3.1.0》这款软件来观察下MBR、DBR。 1、观察MBR: 首先可以在下载免费软件《易我分区表医生3.1.0》,安装运行后,选“扇

易我分区表医生恢复破坏的分区表

易我分区表医生恢复破坏的分区表 《易我分区表医生》是一款修复硬盘分区的软件,使用该工具可以轻易的恢复删除和丢失的分区。下面,我们就来看看如何使用它对我们的分区表等进行修复。 一.有关MBR、分区表、DBR的基本知识 1.硬盘MBR(硬盘主引导记录)及硬盘分区表介绍 硬盘MBR就是我们经常说的“硬盘主引导记录”,它是在对硬盘进行分区的时候写入硬盘的。以下是MBR的组成: 这3部分的大小加起来正好是512字节=1个扇区(硬盘每扇区固定为512个字节),因此,人们又形象地把MBR称为“硬盘主引导扇区”。 2.硬盘DBR(DOS引导记录)介绍 硬盘(这里硬盘指逻辑磁盘,不同于物理磁盘,所有分区内逻辑扇区,都从“0”开始编号,直到最大值-1,涵盖整个分区)的0扇区叫做DOS引导扇区,又称为BOOT区。由FORMAT 高级格式化命令将DOS引导记录(DBR)写在该扇区,主要功能是完成系统的自举。 综上所述,我们知道硬盘MBR负责总管硬盘分区,只有分区工具才能对它进行读写;而D BR则负责管理某个具体的分区,它是用操作系统的高级格式化命令(如FORMAT)来写入硬盘的。在系统启动时,最先读取的硬盘信息是MBR,然后由MBR内的主引导程序读出DBR,最后才由DBR内的DOS引导代码读取操作系统的引导程序,其中任何一个环节出了问题,操作系统都无法正常启动成功,如果是MBR部分出了问题,即使只是”55AA”标志字丢失或被改为其他值,通常都会出现“无效分区表“、逻辑盘丢失、启动死机等现象;而如果是DBR部分出了问题,通常会出现“未格式化的分区”的错误提示。

近距离观察MBR、DBR: 现在我们用《易我分区表医生3.1.0》这款软件来观察下MBR、DBR。 1、观察MBR: 首先可以在下载免费软件《易我分区表医生3.1.0》,安装运行后,选“扇区”下面的“编辑扇区”,在“绝对地址”处输入0(这里是一般默认情况下MBR所在的扇区处),可看到MBR的信息,如下图: 从图中我们可以看到MBR的0~01BD字节为主引导程序;01BE~01FD这64字节为硬盘分区表信息,每项分区表占16字节;最后是结束标志字55AA。(注意:不要轻易改动里面的数字)。下面我们详细分析一下分区表中第一个分区表项(01BE~01CD)各个字节所表示的意思: 1BE:值为80,表示为活动分区。

oracle分区操作文档

1. 分区建立 1.1. 建立分区表 create table bigtable ( sale_date date, product_id number, sale_count number, charge number, sales_id number ) tablespace ts_partition pctfree 5 pctused 80 initrans 1 maxtrans 255 parallel(degree 2) storage ( initial 2M next 2M minextents 1 maxextents unlimited pctincrease 0 ) partition by range(sale_date) ( partition sale_date_20020101 values less than (to_date('20020102','yyyymmdd')), partition sale_date_20020102 values less than (to_date('20020103','yyyymmdd')) ); 1.2. 建立分区索引 create index create index idx_bigtable_product_id on bigtable(product_id) parallel 2 local tablespace users on bigtable(product_id) parallel 2 local tablespace users;分区索引和全局索引:

分区索引就是在所有每个区上单独创建索引,它能自动维护,在drop或truncate某个分区时不影响该索引的其他分区索引的使用,也就是索引不会失效,维护起来比较方便,但是在查询性能稍微有点影响。create index idx_ta_c2 on ta(c2) local (partition p1,partition p2,partition p3,partition p4); 或者 create index idx_ta_c2 on ta(c2) local ; 另外在create unique index idx_ta_c2 on ta(c2) local ;系统会报ORA-14039错误,这是因为ta表的分区列是c1,不支持在分区表上创建PK主键或时主键列不包含分区列,创建唯一约束也不可以这样。 oracle 全局索引就是在全表上创建索引,它可以创建自己的分区,可以和分区表的分区不一样,也就是它是独立的索引。 在drop或truncate某个分区时需要创建索引alter index idx_xx rebuild,也可以通过alter table table_name drop partition partition_name update global indexes;实现,但是如果数据量很大则要花很长时间在重建索引上。 可以通过查询user_indexes、user_part_indexes和user_ind_partitions视图来查看索引是否有效。 create index idx_ta_c3 on ta(c3); 或者把全局索引分成多个区(注意和分区表的分区不一样): create index idx_ta_c4 on ta(c4) global partition by range(c4)(partition ip1 values less than(10000),partition ip2 values less than(20000),partition ip3 values less than(maxvalue)); 注意全局索引上的引导列要和range后列一致,否则会有ORA-14038错误。如不能这样写:create index idx_ta_c4 on ta(c1) global partition by range(c4)(partition ip1 values less than(10000),partition ip2 values less than(20000),partition ip3 values less than(maxvalue)); oracle会对主键自动创建全局索引 如果想使某个分区索引置为不可用则可以用如下脚本: alter index idx_tab1 modify partition "ind partition name" unusable 如果想在主键的列上创建分区索引,除非主键包括分区键,还有就是主键建在两个或以上列上,否则不能创建。

相关文档