欢迎来到天天文库
浏览记录
ID:48088084
大小:302.50 KB
页数:30页
时间:2020-01-14
《Oracle性能优化.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Oracle性能优化智能研究院杨赛君性能优化的几个阶段需求阶段设计阶段开发阶段测试阶段维护阶段性能优化的“人月神话”性能优化工作开始得越晚,则成本越大,而成效越小性能优化的“人月神话”需求篇性能规划预计高峰期使用的用户数,以及使用系统的频率,持续连接系统的时间了解用户的期望请求响应时间(统计表明:人对请求等待的平均上限是7秒,超过7秒则开始不耐烦)根据实际情况,定义出每个功能的性能指标(如:对单机的实时监控,延时不超过2秒)设计篇指导方针根据性能指标做设计尽早预见解决方案的性能瓶颈以最少的投资来支持期望的负载(以简单的方案解决简单的问题
2、,以优雅的方案解决复杂的问题)采用务实的技术新技术并不都是好技术好技术不一定是最适用的技术慎用Oracle闪回日志对于大批量的数据库操作,适当地适用存储过程,是一种理性回归Oracle内存简介SGA(SystemGlogalArea)系统全局区PGA(ProgramGlogalArea)进程全局区SGA参数设置oracle10g之前:log_buffer(日志缓冲区):建议3M左右large_pool_size(大缓冲池):根据是否MTS做调整java_pool_size(java池):根据数据库是否使用java做调整share_poo
3、l_size(共享池):用于缓存解析过的sql语句,不宜太大或太小,建议在500M以内调整data_buffer(数据缓冲区):sga中都剩余部分,尽可能多地分配Oracle10g:sga_target(初始化内存)Sga_max_size(最大内存)PGA参数设置Oracle9i前:SORT_AREA_SIZE:在信息换出到磁盘之前,用于对信息排序的RAM总量SORT_AREA_RETAINED_SIZE:排序完成后用于保存已排序数据的内存总量HASH_AREA_SIZE:服务器进程在内存中存储散列表所用的内存量Oracle9i:PG
4、A_AGGREGATE_TARGET:这个参数会控制实例为完成数据排序/散列的所有工作区(即排序区和散列区)总共应分配多少内存。表优化设计原则尽量不使用复合主键常访问的字段顺序应靠前对于常关联查询的表应设计外键对于查询消耗大而又不常变更的数据,可以适当做字段冗余索引设计的几个原则对索引的设计,必须基于对业务的精通区别对待OTLP与OLAP在常用做查询条件,且选择性高的字段上建索引对新增频繁的表慎加索引根据不同的特点选择建不同的索引(B*、函数、位图等)外键必须建索引组合索引里最常用的字段放到前面索引与表分别放在不同的表空间建多少个索引应
5、使用中庸原则,在常查询与常更新中权衡分而治之分区的作用:1、规范数据管理;2、提升性能对特别大的表才采用分区管理根据实际业务来分区,如要做数据定期备份与迁出,则宜按时间来分区用于分区的键最好是常用作查询条件的字段,这样能提高查询性能使用全局索引,慎用局部索引分区粒度不宜太小物化视图对于复杂而高消耗的查询,如果使用频繁,应建成物化视图物化视图是一种典型的以空间换时间的性能优化方式对于更新频繁的表慎用物化视图选择合适的刷新方式并发处理在批量操作或对大表操作时可以考虑采用并发,充分利用服务器资源切勿滥用并发,很容易使系统瘫痪并发只是在多核机器
6、上才适用设置合适的参数:db_block_multiblock_read_count减少IO与网络传输次数尽量用较少的数据库请求,获取到需要的数据,能一次性取出的不分多次取出对于频繁操作数据库的批量操作,应采用存储过程,减少不必要的网络传输死锁与阻塞对于需要平凡更新的数据,尽量避免放在长事务中,以免导致连锁反应不是迫不得已,最好不要在Oracle锁机制外再加自己设计的锁减少事务大小,及时提交事务尽量避免跨数据库的分布式事务,因为环境的复杂性,很容易导致阻塞慎用位图索引,更新时容易导致死锁开发篇SQL语句执行过程每种类型的语句都需要如下阶
7、段:•第1步:创建游标•第2步:分析语句•第5步:绑定变量•第7步:运行语句•第9步:关闭游标如果使用了并行功能,还会包含下面这个阶段:•第6步:并行执行语句如果是查询语句,则需要以下几个额外的步骤,如图3所示:•第3步:描述查询的结果集•第4步:定义查询的输出数据•第8步:取查询出来的行系统优化设计思路采用务实的技术,不盲从技术做出切合系统实际的参数配置减少SQL解析次数,使用绑定变量减少IO次数减少网络传输减少资源冲突,避免长时间锁分而治之以空间换时间中庸原则,不走极端SQL执行计划了解sql执行计划是编写出良好性能sql语句的必修
8、课从sql执行计划可看到如何使用的索引,如何访问表,每一步所消耗的成本等有价值的信息详细使用及阅读方法请参阅相关资料编写SQL语句常用技巧使用绑定变量尽量用索引列做查询关联或嵌套查询时,使用返回数据集少的表
此文档下载收益归作者所有