分类: Oracle
2008-04-22 19:31:08
在我的IT职业生涯中我学到了第一条规则 -- 我看到在过去的20多年中已经被多次证明 -- 简单地说就是:“不要象测试过程中那样在生产环境中工作”( Nothing works in production like it did during testing)。因为在信息技术中唯一不变的就是变化,因为要完整复制一个生产环境是不可能的,因为代码非常昂贵,IT专家已经发现大多数时候这句格言是真理,基于我的经验,我编译了一个最常用的数据库系统向量改变列表,但是我唯一相信的是这里总存在一些或许我还没有遇到过。
升级现有应用程序到新版本
我不喜欢夸大地叙述临时应用程序维护是大多数对Oracle数据库系统的改变的载体,DBA经常被请去更新无数的构成应用程序基础架构的PL/SQL对象,包括包说明、包主体、存储过程、存储函数和触发器,而不关心这些改变如何进行测试和评估,我们的测试团队不能预先执行测试就发布出去是可能的事情,这样就可能引起相当严重的性能问题。
修改数据库结构
有点不常见的是对现有数据库结构的修改以提升性能。包括下面的例子:
◆升级一个字典管理的表空间(DMT)(dictionary-managed tablespace)为一个本地管理的表空间(LMT)(locally-managed tablespace)
◆移动一个表或索引到一个使用自动段存储管理(ASSM)(Automatic Segment Storage Management)的LMT代替块空间管理的自由列表
◆把堆组织表变成索引组织表(反之亦然)
◆把堆组织表转换成分区表
◆通过添加、移除、分割或交换分区将分散的数据转换到一个分区表
◆在现有表上添加一个索引或移除一个索引
◆把B-tree索引修改为位图索引(反之亦然)
◆修改B-tree索引的内部组织(如:从简单的堆组织到压缩的,反向键,或降序索引)
◆为对应的分区表创建一个全局的或本地分区索引
◆为表或索引刷新基本成本的优化器统计,包括将统计复原到一个先前的时间点