多年系统优化的总结
一、调整数据结构的设计,要考虑以下:
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. 创建临时表空间用于排序操作,防止数据碎片存在于多个
相关新闻>>
- 发表评论
-
- 最新评论 更多>>