- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(oracle分区表的建立方法
Oracle提供了分区技术以支持VLDB(Very Large DataBase)。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。
Oracle的分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间中。查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询。
分区提供以下优点:
由于将数据分散到各个分区中,减少了数据损坏的可能性;
可以对单独的分区进行备份和恢复;
可以将分区映射到不同的物理磁盘上,来分散IO;
提高可管理性、可用性和性能。
Oracle提供了以下几种分区类型:
范围分区(range);
哈希分区(hash);
列表分区(list);
范围-哈希复合分区(range-hash);
范围-列表复合分区(range-list)。
Oracle的普通表没有办法通过修改属性的方式直接转化为分区表,必须通过重建的方式进行转变,下面介绍三种效率比较高的方法,并说明它们各自的特点。
方法一:利用原表重建分区表。
步骤:
SQL CREATE TABLE T (ID NUMBER PRIMARY KEY, TIME DATE);
表已创建。
SQL INSERT INTO T SELECT ROWNUM, CREATED FROM DBA_OBJECTS;
已创建6264行。
SQL COMMIT;
提交完成。
SQL CREATE TABLE T_NEW (ID, TIME) PARTITION BY RANGE (TIME)
2 (PARTITION P1 VALUES LESS THAN (TO_DATE(2004-7-1, YYYY-MM-DD)),
3 PARTITION P2 VALUES LESS THAN (TO_DATE(2005-1-1, YYYY-MM-DD)),
4 PARTITION P3 VALUES LESS THAN (TO_DATE(2005-7-1, YYYY-MM-DD)),
5 PARTITION P4 VALUES LESS THAN (MAXVALUE))
6 AS SELECT ID, TIME FROM T;
表已创建。
SQL RENAME T TO T_OLD;
表已重命名。
SQL RENAME T_NEW TO T;
表已重命名。
SQL SELECT COUNT(*) FROM T;
COUNT(*)
----------
6264
SQL SELECT COUNT(*) FROM T PARTITION (P1);
COUNT(*)
----------
0
SQL SELECT COUNT(*) FROM T PARTITION (P2);
COUNT(*)
----------
6246
SQL SELECT COUNT(*) FROM T PARTITION (P3);
COUNT(*)
----------
18
优点:方法简单易用,由于采用DDL语句,不会产生UNDO,且只产生少量REDO,效率相对较高,而且建表完成后数据已经在分布到各个分区中了。
不足:对于数据的一致性方面还需要额外的考虑。由于几乎没有办法通过手工锁定T表的方式保证一致性,在执行CREATE TABLE语句和RENAME T_NEW TO T语句直接的修改可能会丢失,如果要保证一致性,需要在执行完语句后对数据进行检查,而这个代价是比较大的。另外在执行两个RENAME语句之间执行的对T的访问会失败。
适用于修改不频繁的表,在闲时进行操作,表的数据量不宜太大。
方法二:使用交换分区的方法。
步骤:
SQL CREATE TABLE T (ID NUMBER PRIMARY KEY, TIME DATE);
表已创建。
SQL INSERT INTO T SELECT ROWNUM, CREATED FROM DBA_OBJECTS;
已创建6264行。
SQL COMMIT;
提交完成。
SQL CREATE TABLE T_NEW (ID NUMBER PRIMARY KEY, TIME DATE) PARTITION BY RANGE (TIME)
2 (PARTITION P1 VALUE
您可能关注的文档
- (mysql存储过程.doc
- [中南大学2013运控试卷完整版.docx
- (mysql存储过程游标循环使用介绍.doc
- [中南大学2014年全国硕士研究生入学考试.doc
- [中南大学多媒体试卷试卷.doc
- [中南大学工商管理、人力资源、市场营销毕业论文题目精简.doc
- (MySQL安全配置.docx
- [中南大学数字信号处理课程设计报告2.doc
- (MySQL开发规范.doc
- (mysql操作.doc
- 传统节日文化在初中生劳动教育中的实践路径研究教学研究课题报告.docx
- 小学语文课堂中基于生成式AI的跨学科学习共同体构建策略研究教学研究课题报告.docx
- 初中语文移动学习平台轻量化AI教育资源界面设计对古诗文学习的促进教学研究课题报告.docx
- 高中教育质量提升策略研究——基于人工智能的数据质量监控教学研究课题报告.docx
- 2025年民航职业技能鉴定通关题库及参考答案详解(巩固).docx
- 《城市生态系统碳汇能力提升策略与低碳城市规划》教学研究课题报告.docx
- 创新教育理念下初中数学资优生创新能力培养策略研究教学研究课题报告.docx
- 高中信息科技伦理教育在虚拟现实技术教学中的应用策略探讨教学研究课题报告.docx
- 2025年医疗器械国产化趋势,行业布局与市场前景分析报告.docx
- 高中英语阅读教学中批判性思维培养与阅读理解能力提升研究教学研究课题报告.docx
文档评论(0)