oracle10g系统管理之表管理

1.         设计表

1)        规划表、列、索引和簇时,这些对象应该使用有意义的名称。

2)        规划表明和列名时,要使用一致的缩写格式、单数或复数格式。

3)        为了给用户和其他人员提供有意义的帮助信息,应该使用COMMENT命令描述表、列的作用。

4)        设计表时,应该使用第一范式、第二范式、第三范式规范化每张数据库表。

5)        定义表列时,应该选择合适的数据类型和长度。

6)        定义表列时,为了节省存储空间,应该将NULL列放到后面。

7)        在合适的情况下使用簇表以节省存储空间并提高SQL语句的性能。

2.         规划表的类型

1)        普通表:数据以无序方式存放在单独的表段中,该种表是最基础、最常用的数据库表类型。

2)        簇表:簇由共享相同数据块的一组表组成,在合适的情况下使用簇表可以节省存储空间并提高SQL语句性能。

3)        索引表:数据以B-树结构存放在主键约束所对应的索引段中。使用索引表时,索引叶块不仅包含了健列的数据,也包含了其他非健列的数据。

4)        分区表:数据被划分为更小的部分,并且存储到相应的分区段中,每个分区段可以独立管理和操作。

3.         规划表的位置

如果建表时不指定TABLESPACE选项,Oracle会将表段建立在用户的默认表空间中,通过指定TABLESPACE选项,可以将表段建立在其他表空间。需要注意,如果要在特定表空间上建表,用户必须具有相应表空间配额或具有UNLIMITED TABLESPACE系统权限。当规划表的存放位置时,应该注意以下事项:

1)        如果将用户对象放到SYSTEM表空间中,将会影响数据库性能。因此Oracle建议不要在SYSTEM表空间上存放用户对象。为了避免将用户对象建立在SYSTEM表空间上,建议数据库管理员必须指定每个用户的默认表空间。

2)        设计应用系统时,应该规划存放应用对象的表空间,不要将用户对象随意分布到各个表空间,以避免增加用户对象的管理时间。

4.         使用并行方式建表

使用子查询(AS SELECT)建表时,在多cpu环境下,应使用并行方式建表,以提高性能。

5.         使用NOLOGGING选项建表

使用子查询建表时,通过制定NOLOGGING选项,可以最小化建表所生成的重做信息,从而提高建表性能。

6.         使用COMPRESS选项建表

使用Oracle的表压缩特征时,Oracle会将同一个数据块中行和列的重复数据放在数据块的头部,压缩了表数据,从而节省了表的存储空间。因为表压缩特征会降低磁盘和内存占用,所以可以有效的提高查询操作的性能。

7.         ROWID 表的伪列,它用于唯一标识表列。ROWID间接给出了表列的物理位置,它是定位表列的最快方式。

8.         常用修改表的SQL命令

1)        修改列定义    ALTER TABLE department MODIFY loc VARCHAR215 DEFAULT BeiJing’;需要注意,如果要算段CHAR类型列的长度,如果该表已经包含数据,就必须将初始化参数blank_trimming设置为true

2)        增加列    ALTER TABLE department ADD remark VARCHAR300 DEFAULT GOOD

3)        修改列名 ALTER TABLE department RENAME COLUMN loc to location

4)        删除列    ALTER TABLE emp DROP COLUMN comm

ALTER TABLE emp DROP COLUMN (comm.phone)

5)        使用UNUSED选项删除列。如果该列已经包含大量数据,删除列的时间会很长。为了不影响性能,可以现将其标记为unused,然后在数据库空闲阶段删除表列。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值