Oracle 技术网 (OTN) > 面向开发人员和数据库管理员的下载、讨论和文档
使用 Segment Advisor 主动地管理空间

OBE 主页 > 10gR2 VMware > 可管理性 > 使用 Segment Advisor 主动地管理空间

使用 Segment Advisor 主动地管理空间

目的

本教程介绍了如何使用 Segment Advisor 主动管理数据库中的空间。

大约 20 分钟

主题

本教程包括下列主题:

将光标置于此图标上以加载和查看本教程的所有屏幕截图。(警告:此操作会同时加载所有屏幕截图,网速较慢时,响应时间可能会比较长。)

注意:您还可以在下面的步骤中将光标放在每个单独的图标上,仅加载和查看与该步骤相关的屏幕截图。

概述

如果对象以稳定状态使用的空间小于分配给它的空间,则有必要回收未使用的空间。对于以前版本的 Oracle 服务器,只能通过移动或重新定义段才能释放所分配的低于段的 HWM 的空间。在 Oracle 数据库 10g 中,您现在可以收缩段。收缩段后,它的数据将被压缩,它的 HWM 将被降低,且未使用的空间将被再次释放到包含该段的表空间。收缩操作是一个联机现地操作,并且不使用额外的数据库空间便可以执行。现地意味着缩小操作不创建单独的对象,而是对同一对象执行缩小。

Oracle 数据库 10g 第 1 版提供了 Segment Advisor,用于识别适合根据其可用空间大小进行收缩的段。Oracle 10g 第 2 版引入的 Automatic Segment Advisor 增强了此功能,它对那些有可能需要根据系统活动以及段所在表空间的空间压力进行收缩的段运行 Segment Advisor。该特性最大限度地降低了手动运行 Segment Advisor 的需要。如果要收缩的段尚未由 Automatic Segment Advisor 分析,则可以对这些段手动运行 Segment Advisor。

在本教程中,您将创建一个表,生成活动,然后使用 Segment Advisor 确定是否可以回收空间。

返回主题列表

要演示 Segment Advisor,在表中创建并生成数据活动。将该表的 Enable Row Movement 选项设置为 Yes。选择该选项使您可以对该表进行空间回收。执行以下步骤:

1.

打开浏览器,输入以下 URL:

http://raclinux1.us.oracle.com:1158/em

SYSDBA 的身份输入 sys/oracle,然后单击 Login

将鼠标移到该图标上可以查看该图像

 

2.

单击 Administration 选项卡。

将鼠标移到该图标上可以查看该图像

 

3.

在 Schema 部分中单击 Tables

将鼠标移到该图标上可以查看该图像

 

4.

单击 Create

将鼠标移到该图标上可以查看该图像

 

5.

选择 Standard, Heap Organized 并单击 Continue

将鼠标移到该图标上可以查看该图像

 

6.

在 Name 域中输入 EMPLOYEES1。将 SYSTEM 指定为模式,并将 EXAMPLE 指定为表空间。单击 Define Using 下拉列表,并选择 SQL。在 Create Table As 域中键入 select * from hr.employees,然后单击 Options 选项卡。

将鼠标移到该图标上可以查看该图像

 

7.

为 Enable Row Movement 选择 Yes,然后单击 OK,完成表的创建。

将鼠标移到该图标上可以查看该图像

 

8.

表已创建完成。单击 Cluster Database 路径式导航栏。

将鼠标移到该图标上可以查看该图像

 

9.

打开一个终端窗口并执行以下命令,在 EMPLOYEES1 表上模拟用户活动。

cd /home/oracle/wkdir
sqlplus system/oracle
@genactivity01

genactivity01.sql 文件包含以下代码:

begin
for i in 1..1000 loop
insert into system.employees1
select * from hr.employees;
commit;
end loop;
end;
/
          

将鼠标移到该图标上可以查看该图像

 

10.

要在 EMPLOYEES1 表上模拟更多用户活动,在 SQL*Plus 会话中执行以下 SQL 脚本:

@genactivity02

genactivity02.sql 文件包含以下代码:

delete system.employees1 where department_id = 50;
begin
for i in 1..500 loop
insert into system.employees1
select * from hr.employees;
commit;
end loop;
end;
/
           

将鼠标移到该图标上可以查看该图像

 

11.

要在 EMPLOYEES1 表上模拟更多用户活动,在 SQL*Plus 会话中执行以下 SQL 脚本:

@genactivity03

genactivity03 文件包含以下代码:

begin
for i in 1..500 loop
insert into system.employees1
select * from hr.employees;
commit;
end loop;
end;
/

将鼠标移到该图标上可以查看该图像

 

12.

要在 EMPLOYEES1 表上模拟更多用户活动,在 SQL*Plus 会话中执行以下 SQL 脚本:

@genactivity04

genactivity04.sql 文件包含以下代码:

delete system.employees1 where department_id = 30;
commit;
delete system.employees1 where department_id = 100;
commit;
delete system.employees1 where department_id = 50;
commit;
delete system.employees1 where department_id = 80;
commit;

exit

将鼠标移到该图标上可以查看该图像

 

13.

切换回 Enterprise Manager。现在,您可以查看表段统计信息。从 Administration 选项卡中,单击 Tables 链接。

将鼠标移到该图标上可以查看该图像

 

14.

要找到 SYSTEM.EMPLOYEES1 表,在 Schema 域中输入 SYSTEM 并在 Object Name 域中输入 emp,然后单击 Go

将鼠标移到该图标上可以查看该图像

 

15.

单击 Edit

将鼠标移到该图标上可以查看该图像

 

16.

单击 Segments 选项卡。

将鼠标移到该图标上可以查看该图像

 

17.

注意 EMPLOYEES1 表中的已浪费空间百分比。可以使用 Segment Advisor 回收该表中未使用的空间。单击 Cluster Database 路径式导航栏。

将鼠标移到该图标上可以查看该图像

 

返回主题列表

使用 Segment Advisor 回收空间

执行以下步骤:

1.

向下滚动至页面底部。单击 Related Links 部分中的 Advisor Central 链接。

将鼠标移到该图标上可以查看该图像

注意:在 Oracle 数据库 10g 第 2 版中,Segment Advisor 自动按各个时间间隔运行。因此,在某段时间过后,您将看到 Home 页面上显示的 Segement Advisor 建议数。

 

2.

单击 Segment Advisor

将鼠标移到该图标上可以查看该图像

 

3.

选择 Schema Objects,然后单击 Next

将鼠标移到该图标上可以查看该图像

 

4.

单击 Add

将鼠标移到该图标上可以查看该图像

 

5.

为 type 选择 Table,为 Schema 输入 system 并为 object name 输入 employees1,然后单击 Search

将鼠标移到该图标上可以查看该图像

 

6.

选择 Select 列中的复选框 以选中 Results 部分中的 SYSTEM.EMPLOYEES1,然后单击 OK

将鼠标移到该图标上可以查看该图像

 

7.

单击 Next

将鼠标移到该图标上可以查看该图像

 

8.

在 Schedule 窗口中,选择计划类型 Standard 并确保在 Start 部分中选择 Immediately。单击 Next

将鼠标移到该图标上可以查看该图像

 

9.

单击 Submit

将鼠标移到该图标上可以查看该图像

 

10.

单击 Refresh

将鼠标移到该图标上可以查看该图像

 

11.

选择 SEGMENTADV_(刚刚提交的请求结果),然后单击 View Result

将鼠标移到该图标上可以查看该图像

 

12.

单击 Recommendation Details

将鼠标移到该图标上可以查看该图像

 

13.

选择 EMPLOYEES1 段,然后单击 Shrink

将鼠标移到该图标上可以查看该图像

 

14.

单击 Implement

将鼠标移到该图标上可以查看该图像

 

15.

单击 Submit

将鼠标移到该图标上可以查看该图像

 

16.

现在,可以检查从表中实际释放的空间大小。单击 Cluster Database 路径式导航栏。

将鼠标移到该图标上可以查看该图像

 

17.

单击 Tables

将鼠标移到该图标上可以查看该图像

 

18.

为 Schema 输入 system,为 Object Name 输入 emp,然后单击 Go

将鼠标移到该图标上可以查看该图像

 

19.

选择 EMPLOYEES1,然后单击 Edit

将鼠标移到该图标上可以查看该图像

 

20.

单击 Segments 选项卡。

将鼠标移到该图标上可以查看该图像

 

21.

所浪费的空间已显著减少。

将鼠标移到该图标上可以查看该图像

 

返回主题列表

在本教程中,您学习了如何执行下列任务:

使用 Segment Advisor 回收表中的空间

返回主题列表

将光标置于该图标上可以隐藏所有屏幕截图。

E-mail this page
打印机视图 打印机视图