模式对象

第三部分、模式对象
*****************************************************************************************************
一、管理模式对象空间
-----------------------------------------------------------------------------------------------------
1. 管理数据块空间
(1) PCTFREE: 在数据块中,为更新行而保留的空间占数据块的比重,默认值是10
(2) PCTUSED: 在数据块中,已用空间占数据块的比重,默认值是40
* (1) 更新时,若PCTFREE所确定的百分比未填满,则可在PCTFREE的空间插入新行;
(2) 更新时,若PCTFREE所确定的百分比已填满,则不可在PCTFREE的空间插入新行;
① 若PCTUSED所确定的百分比未被填满,则可在PCTUSED的空间插入新行;
② 若PCTUSED所确定的百分比已被填满,则不可在PCTUSED的空间插入新行;
* PCTFREE + PCTUSED < 100
(3) Initrans: 指定DML事务入口的数目(在数据块头部)
(4) Maxtrans: 指定同一个数据块中同时使用数据的事务入口数目

2. 设置存储参数
(1) 表:Initial、Next、MaxExtents、MinExtents、PctIncrease等
(2) 表空间
(3) 数据段
(4) 回滚段
(5) 簇
(6) Lob、Varry和嵌套表
* 不能修改Initial和MinExtents的存储参数

3. 存储参数的优先级
--------------------------------------
(1) Alter 表/视图/簇/回滚段/索引等对象

(2) Create表/视图/簇/回滚段/索引等对象

(3) Alter表空间

(4) Create表空间

(5) Oracle默认值

4. 管理可恢复空间分配
--------------------------------------
(1) 启用/禁止可恢复空间的分配
① 启用/禁止: Alter session enable/disable resumable;
② 指定超时间隔: Alter session enable resumable timeout 3600;
③ 命名可恢复语句: Alter session enable resumable timeout 3600 name 'insert into table';
④ 修改超时间隔:可用Alter session,或创建触发器使用DBMS_RESUMABLE.SET_TIMEOUT(时间)

(2) 检测暂停的语句
① 视图:Dba_Resumable、User_Resumable、V$Session_Wait
② 包:DBMS_RESUMABLE的方法
-----Abort(sessionID)
-----Get_Session_Timeout(sessionID)
-----Set_Session_Timeout(sessionID)
-----Get_Timeout()
-----Set_Timeout(timeout)

5. 回收空间
(1) 回收表、簇、索引的空间
Alter Table/Index/Cluster 对象 Deallocate unused Keep 整数;
* 若没指定Keep选项,则所有的未利用空间都将被回收


二、管理表
-----------------------------------------------------------------------------------------------------
1. 管理表的准则
----------------------------
(1) 创建表前先设计表
(2) 指定如何使用数据空间
(3) 指定每个表的位置
(4) 估计表的大小和设置存储参数
(5) 考虑并行创建表
(6) 考虑创建表时使用NoLogging
(7) 规则大表
(8) 表的限制

2. 创建表
----------------------------
(1) 普通表
Create Table 表名(字段列表);
(2) 临时表
Create Temparory Table 表名(字段列表);
(3) 并行表
Create Table 表1 Parallel
as select (字段列表) from 表2;
(4) 联机重定义表
(5) 索引结构表(Organization Index Tablespace 表空间)
(6) 外部表(Oraganization External)

3. 更改表
----------------------------
(1) 增、删、改、重命名列
Alter Table 表名
Add (字段列表 类型)
Modify (字段列表 类型)
Drop (字段列表)
Rename Column 原列名 to 新列名
Set Unused (字段列表)
Drop Unused Columns Checkpoint 300;

(2) 修改数据块使用空间(PCTFREE、PCTUSED)
(3) 修改事务入口参数(MinTrans、MaxTrans)
(4) 修改存储参数

4. 删除表
----------------------------
Delete Table 表名(cascade constraints)

5. 表信息
----------------------------
视图:DBA/ALL/USER_TABLES、DBA/ALL/USER_TAB_COLUMNS
DBA/ALL/USER_External_TABLES、DBA/ALL/USER_UNUSED_COL_TABS

三、管理索引
-----------------------------------------------------------------------------------------------------
* 索引类型:B树索引、B树簇索引、散列簇索引、全局和局部索引、逆转键索引、
位图索引、基于函数的索引、域索引等

1. 管理索引的准则
------------------------
(1) 在表中插入数据后创建索引
(2) 索引正确的表和列
(3) 为性能而安排索引列(最常用的排在最前面)
(4) 限制每个表的索引数量(读多写少)
(5) 删除不再需要的索引
(6) 指定索引数据块空间的使用(只能使用PCTFREE而不能使用PCTUSED)
(7) 估计索引大小和设置存储参数
(8) 为每个索引指定表空间
(9) 考虑并行、NoLogging创建索引
(10)考虑合并或重建索引是的损益
(11)在停用或删除约束之前考虑开销

2. 创建索引
------------------------
(1) 明确地创建索引
Create index idx_a1 on Tb1(a1)
Tablespace Users
Storage(Initial 20K
Next 20K
PctIncrease 75
)
PCTFREE 0;

(2) 明确地创建唯一索引
Create unique index idx_a2 on Tb1(a2)
Tablespace Users;

(3) 创建与约束相关的索引
. 创建表时创建约束索引
① Create Table Tb1
(
id number(4) primary key,
name varchar2(20)
)
Tablespace Users;

② Create Table Tb1
(
id number(4),
name varchar2(20),
Constraint PK_ID Primary Key(id)
);

. 修改表时创建约束索引
Alter Table Tb1
add constraint PK_ID Primary Key(id);

(4) 创建大索引

(5) 创建联机索引
Create Index idx_name on Tb1(name) online;

(6) 创建基于函数的索引
Create Index idx_name on scott.emp(Upper(ename));
Select * from scott.emp where Upper(ename) like 'JOH%';

(7) 创建键压缩索引
Create Index idx_name on Tb1(name)
Tablespace Users
Compress 1;

3. 更改索引
-------------------------
(1) 更改索引的存储特征
Alter Index idx_name
storage(PCTIncrease 50);
(2) 重建现存索引
Alter Index idx_name Rebuild;
(3) 监视索引使用
Alter Index idx_name (No)Monitoring Usage;

4. 删除索引
-------------------------
Drop Index idx_name;

5. 查看信息
-------------------------
视图:DBA/ALL/USER_INDEXS、Index_Stat、V$Object_Usage;

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8748334/viewspace-912611/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8748334/viewspace-912611/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值