1、调整数据结构的设计,要考虑如下:web
1. 任何表的设计都要考虑到数据的删除策略,表中的数据不能无止境的增加而不删除。
2. 根据实际使用分区表(要用本地索引);
3. 根据须要创建主键、索引,日志表通常能够不建主键,索引建在使用率高的字段上;
4. 不一样的业务日志要记录到不一样的日志表中,日志表最好分为当前表(仅放当前记录数据)和历史表(当前表的转移数据,能够建分区,便于清理);
5. 不一样的业务表放到不一样的表空间。
6. 表和索引要放到不一样的表空间。
7. 严禁在系统表空间建用户对象。
8. 对于大系统最好分域,一个子系统对应一个域(一个域至关于一个数据库)。
9. 公共对象最好单独建域,供全部子系统访问。
10. 对于海量数据且有大量报表查询的系统,应建离线数据库,经过专门数据传输工具把线网数据导到离线库,供报表、BI专用。
11. 大量的频繁的数据导入导出应使用专门的数据处理工具进行处理。
2、调整应用程序结构设计,要考虑如下: sql
1. 肯定使用 Client/Server两层体系结构,仍是使用Browser/Web/Database的三层体系结构;
2. 无论用那种结构,应用服务器都不要直接连数据库(应用服务最好使用中间件连数据库);
3. web服务器的参数根据实际状况进行设置。
4. 动态资源和静态资源服务最好分开部署。
5. 前台服务和后台服务最好分开部署。
6. 同一服务部署在大量机器上时最好使用负载均衡技术(如F5).
7. 各服务器要使用主备切换、负载均衡技术,要有自动拉起工具。
3、调整数据库SQL语句:数据库
1. 最好使用存储过程、函数等数据库对象(触发器少用),效率高,维护方便。
2. 根据状况选择合适ORACLE语句优化器、行锁管理器,9i之后使用基于成本的优化器,要常常进行表分析。
3. 其它方面的sql调优这里不作说明。
4. 按期清理表数据。
5. 频繁进行删除的建有索引的表,应按期重建索引,在许可的条件下,也能够阶段性地truncate表(同时也删除索引碎片).
4、ORACLE初始化参数设置,根据各自的系统来设置,没什么标准,注意下面几点:编程
1. 归档日志的空间要足够大,归档日志要定时转移或删除。
2. 回滚表空间根据须要设置为自动管理,若是用回滚段设为手动管理。
3. 要为处理临时的大量数据创建专用的表空间,不要使用其它业务的表空间。
4. 至少建三个日志文件组,每一个组中至少两个日志文件,文件不要放到同一个地方。
5. 使用8i OPS或9i RAC时,要作业务应用分割,服务器采用DEDICATED SERVER方式(独占方式),关掉RAC的remote_listener(远程注册)。
6. oracle各客户端必须关掉listener的负载均衡。
5、调整硬盘I/O,不一样类型的数据文件放在不一样的存储上:安全
1. 将表数据文件、索引文件、日志文件分开存放;
2. 将用户表空间,与系统表空间分开存放;
3. 建立表和索引时指定不一样的表空间;
4. 建立回滚段专用的表空间,防止空间竞争影响事务的完成;
5. 建立临时表空间用于排序操做,防止数据碎片存在于多个表空间中。
6、调整小型机和AIX的参数,根据实际状况进行调整,不作说明。
7、网络方面,很差控制,不作说明。
8、其它方面,如版本升级(ORACLE、应用程序版本等)、防止人为故障、编程规范等;出于安全方面,应创建应急数据库(有条件的能够创建完整的应急系统,并作按期应急演练),应急库要和线网库保持同步更新(业务日志表不用更新)。服务器
若有雷同,望谅解!网络