多年系统优化的总结

    一、调整数据结构的设计,要考虑以下:

       1. 任何表的设计都要考虑到数据的删除策略,表中的数据不能无止境的增长而不删除。
       2. 根据实际使用分区表(要用本地索引);
       3. 根据需要建立主键、索引,日志表一般可以不建主键,索引建在使用率高的字段上;
       4. 不同的业务日志要记录到不同的日志表中,日志表最好分为当前表(仅放当前记录数据)和历史表(当前表的转移数据,可以建分区,便于清理);
       5. 不同的业务表放到不同的表空间。
       6. 表和索引要放到不同的表空间。
       7. 严禁在系统表空间建用户对象。
       8. 对于大系统最好分域,一个子系统对应一个域(一个域相当于一个数据库)。
       9. 公共对象最好单独建域,供所有子系统访问。
       10. 对于海量数据且有大量报表查询的系统,应建离线数据库,通过专门数据传输工具把线网数据导到离线库,供报表、BI专用。
       11. 大量的频繁的数据导入导出应使用专门的数据处理工具进行处理。
      
   二、调整应用程序结构设计,要考虑以下:  

       1. 确定使用 Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构;
       2. 不管用那种结构,应用服务器都不要直接连数据库(应用服务最好使用中间件连数据库);
       3. web服务器的参数根据实际情况进行设置。
       4. 动态资源和静态资源服务最好分开部署。
       5. 前台服务和后台服务最好分开部署。
       6. 同一服务部署在大量机器上时最好使用负载均衡技术(如F5).
       7. 各服务器要使用主备切换、负载均衡技术,要有自动拉起工具。
      
    三、调整数据库SQL语句:

       1. 最好使用存储过程、函数等数据库对象(触发器少用),效率高,维护方便。
       2. 根据情况选择合适ORACLE语句优化器、行锁管理器,9i以后使用基于成本的优化器,要经常进行表分析。
       3. 其它方面的sql调优这里不做说明。
       4. 定期清理表数据。
       5. 频繁进行删除的建有索引的表,应定期重建索引,在许可的条件下,也可以阶段性地truncate表(同时也删除索引碎片).
   
    四、ORACLE初始化参数设置,根据各自的系统来设置,没什么标准,注意下面几点:

       1. 归档日志的空间要足够大,归档日志要定时转移或删除。
       2. 回滚表空间根据需要设置为自动管理,如果用回滚段设为手动管理。      
       3. 要为处理临时的大量数据建立专用的表空间,不要使用其它业务的表空间。
       4. 至少建三个日志文件组,每个组中至少两个日志文件,文件不要放到同一个地方。
       5. 使用8i OPS或9i RAC时,要做业务应用分割,服务器采用DEDICATED SERVER方式(独占方式),关掉RAC的remote_listener(远程注册)。
       6. oracle各客户端必须关掉listener的负载均衡。
    五、调整硬盘I/O,不同类型的数据文件放在不同的存储上:

       1. 将表数据文件、索引文件、日志文件分开存放;
       2. 将用户表空间,与系统表空间分开存放;
       3. 创建表和索引时指定不同的表空间;
       4. 创建回滚段专用的表空间,防止空间竞争影响事务的完成;
       5. 创建临时表空间用于排序操作,防止数据碎片存在于多个表空间中。
      
    六、调整小型机和AIX的参数,根据实际情况进行调整,不做说明。
    七、网络方面,不好控制,不做说明。
    八、其它方面,如版本升级(ORACLE、应用程序版本等)、防止人为故障、编程规范等;出于安全方面,应建立应急数据库(有条件的可以建立完整的应急系统,并做定期应急演练),应急库要和线网库保持同步更新(业务日志表不用更新)。

     如有雷同,望谅解!

 

 

你可能感兴趣的:(职场,休闲,系统优化)