在 Oracle 数据库 11g 中操作分区

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在 Oracle 数据库 11g中操作分区

目的

本教程演示了如何在 Oracle 数据库 11g中使用各种分区技术。

所需时间

大约 50 分钟

主题

本教程包括下列主题:

概述

前提条件

使用引用分区

使用基于虚拟列的分区

总结

概述

在Oracle 数据库11g中,可以使用多种新技术对表数据进行分区,以提高数据的检索性能、优化数据组织。这些技术包括:

返回主题列表

前提条件

开始本教程之前,您应该:

1.安装 Oracle 数据库 11g。

2.

将partition.zip文件下载并解压缩到您的工作目录中。

3.打开一个终端窗口,执行以下命令:

sqlplus / as sysdba

@setup

返回主题列表

使用引用分区

引用分区通过从父表继承分区键(而非复制键列),使得具有父-子关系的表能

够在逻辑上均分。分区键通过现有的父-子关系解析,由现行的主键或外键约束

实施。逻辑相关性还可以自动级联分区维护操作,从而使应用程序开发更轻松且

更不易出错。

执行以下步骤,进一步了解引用分区的用法:

1.

打开一个终端窗口,以SH用户身份登录 SQL*Plus。执行create_orders.sql脚本,

创建按范围分区的ORDERS表。

@create_orders

2.

执行create_order_items.sql脚本,创建按引用分区的ORDER_ITEMS表。

@create_order_items

3.

执行query_dict_1.sql脚本,查看按引用分区的ORDER_ITEMS表的相关信息。

@query_dict_1

4.

执行insert_orders.sql脚本,将数据插入ORDERS表。

@insert_orders

5.

执行show_data_placement.sql脚本,观察如何将数据置于分区中的同一位置。

@show_data_placement

6.

要显示智能化分区连接,请将 _parallel_broadcast_enabled 参数设为 FALSE 。执行以下命令:

ALTER SESSION SET "_parallel_broadcast_enabled"=FALSE;

7.

执行show_plan.sql脚本,查看有关智能化分区连接的信息。

@show_plan

8.

执行drop_partition.sql脚本,从ORDERS表中删除p_before_jan_2006分区。

@drop_partition

9.

执行query_dict_2.sql脚本,查看有关表的信息。

@query_dict_2

10.

执行add_partition.sql脚本,添加p2007_01分区。

@add_partition

11.

执行cleanup_1.sql脚本,删除本例中创建的分区和表空间。

@cleanup_1

返回主题列表使用间隔分区

间隔分区可以完全自动化范围分区的创建。管理新分区的创建是一项繁琐的高重复性任务。对于可预测的小范围分区添加(例如,添加每日的新分区)尤其如此。间隔分区可以通过按需创建分区来自动化该操作。

执行以下步骤,了解间隔分区的用法:

1.

执行create_newsales.sql脚本,创建按间隔分区的NEWSALES表。

@create_newsales

2.

执行query_dict_3.sql脚本,查询USER_TAB_PARTITIONSNEWSALES字典视图,以了解有关NEWSALES表的信息。

@query_dict_3

3.

执行insert_newsales.sql脚本,将新数据插入NEWSALES表,以创建新分区(段)。

@insert_newsales

4.

执行query_dict_4.sql脚本,查看有关新分区的信息。

@query_dict_4

5.

执行merge_partition.sql脚本,合并两个分区。

@merge_partition

@query_dict_5

7.

执行create_hist_newsales.sql脚本,创建一个按范围分区的表。

@create_hist_newsales

@query_dict_6

9.

执行insert_histnewsales_row_1.sql脚本,在HISTORICAL_NEWSALES表中插入一行。插入操作将失败,因为分区表目前还不是一个按间隔分区的表。

@insert_histnewsales_row_1

10.

执行alter_hist_newsales.sql脚本,将分区表更改为按间隔分区的表。

@alter_hist_newsales

11.

执行insert_histnewsales_row_2.sql脚本,再次尝试在该表中插入一行。

@insert_histnewsales_row_2

12.

执行query_dict_7.sql脚本,查看有关分区的信息。

@query_dict_7

相关文档
最新文档