- 浏览: 809016 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (307)
- struts (8)
- hibernate (3)
- spring (32)
- opensourceproject (12)
- javaScript (9)
- primeton EOS (2)
- journey of heart (10)
- Design pattern (6)
- ejb (17)
- point (37)
- Linux&Unix (22)
- ibatis (10)
- AJAX (6)
- DB (26)
- Protocol (6)
- chart (4)
- web server (11)
- webservice (7)
- integration (3)
- tuxedo (5)
- ext (4)
- android (1)
- c/c++ (12)
- JVM (1)
- paginationFrame (2)
- code (2)
- report (1)
- High-performance web (1)
- svn (1)
- JQuery (1)
- workDaily (2)
- cloud (16)
- Python (8)
- English (2)
- shell (5)
- googleCode (1)
- nio (1)
- hyper-v (1)
- debug (3)
- vbs (2)
- openstack (3)
- K8S (1)
- Mesos (0)
- Spark (0)
- Marathon (0)
最新评论
-
钱图大展:
chao2751021 写道lib包哪里去下载,找不到
大型网站用户行为记录的一个实现--基于clickStream(第一部分) -
钱图大展:
无法下载
大型网站用户行为记录的一个实现--基于clickStream(第一部分) -
fm395728572:
shell脚本中用到了环境变量,但是获取不到,例如脚本中有一句 ...
ganymed-ssh2 for Java -
liuhanjiang:
我qq147229234
大型网站用户行为记录的一个实现--基于clickStream(第一部分) -
liuhanjiang:
博主 我利用您提供的方法实现博文中介绍的clickstream ...
大型网站用户行为记录的一个实现--基于clickStream(第一部分)
谈谈怎么实现Oracle数据库分区表
Oracle数据库分区是作为Oracle数据库性能优化的一种重要的手段和方法,做手头的项目以前,只聆听过分区的大名,感觉特神秘,看见某某高手在讨论会上夸夸其谈时,真是骂自己学艺不精,最近作GPS方面的项目,处理的数据量达到了几十GB,为了满足系统的实时性要求,必须提高数据的查询效率,这样就必须通过分区,以解燃眉之急!
先说说分区的好处吧!
1) 增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;
2) 维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;
3) 均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能;
4) 改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。
Oracle数据库提供对表或索引的分区方法有三种:
ü 范围分区
ü Hash分区(散列分区)
ü 复合分区
一、范围分区详细说明
范围分区就是对数据表中的某个值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上。如根据序号分区,根据时间等来进行分区。根据序号,比如小于2000000的放在part01, 2000000~4000000的放在part02。。。
create table AAA
(
id number primary key,
indate date not null
)
partition by range(indate)
(
partition part_01 values less than(to_date('2006-01-01','yyyy-mm-dd')) tablespace space01,
partition part_02 values less than(to_date('2010-01-01','yyyy-mm-dd')) tablespace space02,
partition part_03 values less than(maxvalue) tablespace space03
);
space01\ space02\ space03为建立的三个表空间,相当于把建立的一个大的表分在了3个不同的表空间的分区上了。
二、Hash分区(散列分区)详细说明
散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在I/O设备上进行散列分区,使得这些分区大小一致。也就是只命名分区名称,这样均匀进行数据分布。
三、复合分区详细说明
有时候我们需要根据范围分区后,每个分区内的数据再散列地分布在几个表空间中,这样我们就要使用复合分区。复合分区是先使用范围分区,然后在每个分区内再使用散列分区的一种分区方法。
partition by range(indate)subpartition by hash(id)
subpartitions 3 store in (space01, space02, space03)
(
partition part_01 values less than(to_date(’2006-01-01’,’yyyy-mm-dd’)),
partition part_02 values less than(to_date(’2010-01-01’,’yyyy-mm-dd’)),
partition part_03 values less than(maxvalue)
);
四、分区表操作
1、插入记录:insert into AAA values(1 ,sysdate);
2、查询分区表记录:select * from AAA partition(part_01);
3、更新分区表的记录:update AAA partition(part_01) t set indate=’’where id=1; 但是当更新的时候指定了分区,而根据查询的记录不在该分区中时,将不会更新数据
4、删除分区表记录:delete from AAA partition(part_02) t where id=4; 如果指定了分区,而条件中的数据又不在该分区中时,将不会删除任何数据。
5、增加一个分区:alter table AAA add partition part_04 values less than(to_date(’2012-01-01’,’yyyy-mm-dd’)) tablespace dinya_spa ce03; 增加一个分区的时候,增加的分区的条件必须大于现有分区的最大值,否则系统将提示ORA-14074 partition bound must collate higher than that of the last partition 错误。
6、合并一个分区:alter table AAA merge partitions part_01,part_02 into partition part_02; ,如果在合并的时候把合并后的分区定为part_01的时候,系统将提示ORA-14275 cannot reuse lower-bound partition as resulting partition 错误。
7、删除分区:alter table AAA drop partition part_01; 删除分区表的一个分区后,查询该表的数据时显示,该分区中的数据已全部丢失,所以执行删除分区动作时要慎重,确保先备份数据后再执行,或将分区合并。
五、建立索引
分区表和一般表一样可以建立索引,分区表可以创建局部索引和全局索引。当分区中出现许多事务并且要保证所有分区中的数据记录的唯一性时采用全局索引。
1. 局部索引分区的建立:create index idx_t on AAA(id)
local
(
partition idx_1 tablespace space01,
partition idx_2 tablespace space02,
partition idx_3 tablespace space03
);
2. 全局索引建立时global 子句允许指定索引的范围值,这个范围值为索引字段的范围值:create index idx_t on AAA(id)
global partition by range(id)
(
partition idx_1 values less than (1000) tablespace space01,
partition idx_2 values less than (10000) tablespace space02,
partition idx_3 values less than (maxvalue) tablespace space03
);
当然也可以不指定索引分区名直接对整个表建立索引: create index idx_t on AAA(id);
发表评论
-
使用shell+procedure构造测试数据
2012-01-17 15:27 1236more test.sh #!/usr/bin/bash ... -
porting oracle to mysql
2011-09-02 08:09 1372很久都没写blog了,忙着结婚,忙着和媳妇度过在西安为数不 ... -
ORACLE+UNIX易错问题集锦
2011-02-26 23:31 1580很好的文章! -
Oracle 常用SQL技巧收藏(转载)
2010-11-19 12:53 12761. SELECT子句中避免使用 “*” 当你想 ... -
oracle trigger 的使用
2010-08-29 17:14 16561.目的: 网厅前台订单查询中只查到net ... -
oracle 存储过程学习
2010-05-15 17:13 1795存储过程创建语法: create or replac ... -
记录一次 mysql 无法启动 的问题
2010-05-10 14:10 1739早上看了下我的mysql 服务器,发现无法启动了 ... -
Oracle Sql优化笔记
2010-05-05 10:33 1293基本的Sql编写注意事项 尽量少用IN操作符,基本上所有 ... -
oracle恢复误删除数据,解除锁定的等sql语句
2010-04-27 12:54 21670. (SELECT SID,SERIAL# FROM ... -
Oracle数据库中分区表的操作方法
2010-04-15 08:34 1226在大型的企业应用或企业级的数据库应用中,要处理的数据量通常可以 ... -
使用 exp, imp命令 导出导入数据
2010-04-09 00:08 1619目标 : 我是吧64上的数据用netbnew用户( ... -
SQL注入攻击例子及Statement和PreparedStatement的比较
2010-03-19 22:56 5663SQL injection is a technique th ... -
mysql explain语法解释
2010-02-01 15:13 1346explain显示了mysql如 何使用索引来处理select ... -
Redhad4 下安装mysql5
2010-01-25 21:18 2138一开始是下载的是2进制的包,按照网上的教 ... -
redhat5 下安装 oracle10g
2010-01-23 05:36 2677工作中使用的一直是oracle 数据库 从来 ... -
oracle 小技巧
2009-12-24 21:58 10521.启动和关闭数据库 举例:我们64 测试环境 ... -
mysql 小技巧
2009-12-24 21:45 11101. mysql 看所有表的信息 select * ... -
解决远程连接mysql错误1130代码的方法
2009-12-22 21:27 8887解决远程连接mysql错误 ... -
powerdesigner 基本操作
2009-11-19 22:30 14161.将物理模型 pdm文件 导成数据字典 ... -
oracle 分页例子
2009-10-28 08:44 1467select tp_card_num,serial,resul ...
相关推荐
Oracle分区表是Oracle数据库中的一种高级特性,它允许大型表和索引被划分为更小、更易于管理的部分,称为分区。这些分区可以在物理上存放在不同的表空间中,甚至可以分布在不同的磁盘上。Oracle数据库的分区技术,...
标题中的“提高数据库性能,提高Oracle数据库性能,PCIe FLASH”涉及到的是数据库优化与高速存储技术的话题。在数据库管理领域,性能优化是至关重要的,尤其是对于处理大量数据的企业级应用而言。Oracle数据库作为...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,由甲骨文公司开发并维护。它以其强大、稳定和高效的特点,被许多企业和组织用于存储、管理和处理大量的数据。本课件旨在提供Oracle数据库的基础学习材料...
Oracle数据库系统是全球广泛使用的大型企业级数据库管理系统,它提供了许多高级特性,如分区、物化视图、存储过程、触发器、索引、事务管理等。Oracle数据库的特性使得它在处理大规模数据和复杂业务逻辑时表现出色:...
DBA数据库管理员JAVA程序员架构师必看 一、技术问题某些(数据库某些) 1、表空间管理方式有哪几种?...谈谈分区表应用? 分区表在对表DML并行解决上有极大得优势,并且可以一某些设为只读,用在销售记录,医院处方等地方!!
Oracle数据库的性能优化是数据库管理员的关键任务之一,尤其是在企业级应用中,确保Oracle数据库的高效运行至关重要。本文将深入探讨几个关键策略,帮助保持Oracle数据库的优良性能。 首先,我们来谈谈分区。分区是...
再者,RAC(Real Application Clusters)是Oracle数据库的一项高级特性,它允许多台服务器共享同一个数据库实例,从而实现高可用性和负载均衡。在RAC环境中,数据被分布到多个节点上,当某个节点出现故障时,其他...
接下来,我们谈谈Oracle数据库。Oracle是世界上最广泛使用的商业关系型数据库管理系统之一,以其强大的功能和高可用性而闻名。它支持多种数据类型,如VARCHAR2、NUMBER、DATE以及复杂的数据结构如表分区、簇和索引...
首先,我们来谈谈Oracle数据库的安装。安装Oracle 9i通常涉及以下步骤:规划系统资源、下载安装介质、创建响应文件、执行安装程序、配置监听器和网络服务、以及最后的数据库创建。在安装过程中,你需要考虑硬件需求...
了解这些基础概念后,你可以进行更复杂的数据库设计,如分区表、物化视图和存储过程的编写,以提升性能和实现复杂业务逻辑。 总的来说,Oracle笔记覆盖了数据库系统的基础知识,对于初学者或是需要进一步巩固Oracle...
在软件开发中,数据库设计是不可或缺的步骤,包括需求分析、概念模型设计(E-R图)、逻辑模型设计(表结构)和物理模型设计(索引、分区等)。良好的数据库设计可以优化性能,降低数据冗余,提高数据的一致性。 ...
性能优化是Oracle数据库的一个重要主题,涉及到索引、分区、物化视图、查询优化器等。了解这些知识可以帮助你提升数据库的响应速度,降低系统负载。此外,安全管理、备份恢复也是Oracle数据库管理员必须掌握的技能。...
本文将详细探讨如何在Oracle数据库中进行批量插入优化,并介绍MyBatis Generator这一自动化代码生成工具,以提高开发效率。 首先,让我们深入理解Oracle数据库中的批量插入。批量插入可以显著提升性能,尤其是在...
- Oracle的表空间和数据文件是如何工作的? - RAC(Real Application Clusters)集群技术如何提供高可用性? 3. **MySQL面试题** - InnoDB与MyISAM引擎的区别在哪里?为什么InnoDB更适合事务处理? - 解释MySQL...
最后,物理设计考虑存储效率,优化表的索引、分区等策略。 数据库管理系统(DBMS)是用于管理和操作数据库的软件。常见的DBMS有Oracle、MySQL、SQL Server、PostgreSQL等,它们提供了一整套工具和服务,包括数据...
首先,让我们来了解如何在Java中使用ODBC连接Oracle数据库。ODBC(Open Database Connectivity)是一种标准的应用程序编程接口(API),它允许应用程序与各种数据库系统进行交互。在Java中,我们可以使用JDBC(Java ...
在Oracle数据库管理中,SQL优化是一项至关重要的任务,它直接影响到数据库系统的性能和效率。"Oracle SQL优化初步"这个主题涵盖了DBA们在日常工作中必须掌握的基础知识和技巧。SQL优化的目标是通过改进查询结构、...
1. **高性能**:Oracle数据库通过高效的索引、分区策略和缓存机制,能够快速处理大量数据,满足物品管理系统高并发访问的需求。 2. **高可用性**:Oracle的RAC(Real Application Clusters)和Data Guard等技术,...
数据库管理系统(DBMS)是实现数据库管理的核心软件,如MySQL、Oracle、SQL Server等。试卷可能涵盖不同DBMS的特点、优势和使用场景,以及如何在不同环境下选择合适的DBMS。 数据模型是数据库设计的基础,主要分为...