航空结算系统基于Oracle的数据架构解决方案DTCC2012-Beijing•侯圣文(Secooler)•Site:•Weibo:secooler•Mail:secooler@gmail.com•MSN:secooler@hotmail.com•QQ:21259347•Mobile:13910123683DTCC2012DTCC2012DTCC2012-Beijing2AboutOCMUOCMU:OracleCertifiedMasterUnion姓名:侯圣文网络ID:Secooler北京大学理学硕士获OracleOCM认证OCM联盟()发起人ACOUG成员ITPUB论坛资深版主DataGuru专家团成员技术Blog:微博:主要内容航空结算系统数据库优化概述航空结算系统数据库优化方向数据库性能评估及影响因素分析数据库性能优化实践数据库优化步骤与方法总结优化成果总结展望DTCC2012DTCC2012DTCC2012-Beijing5航空结算系统数据库优化概述航空结算系统后台数据库体系结构数据量、性能要求、安全方面(信用卡交易)OLTP与OLAP类型相结合系统优化前后体系结构对比系统应用程序数据库服务器数据库存储OLAP系统应用程序OLTP系统应用程序OLAP数据库服务器共享存储系统节点A节点BOracleRAC节点数据库存储DTCC2012DTCC2012DTCC2012-Beijing6航空结算系统数据库优化方向原有OLTP和OLAP混合部署的数据库进行分库处理优势:独享处理资源、互不干扰OLTP部分采用OracleRAC技术构建应用程序设计优化——最有效途径SQL代码优化内存使用优化数据访问优化物理存储优化系统整体吞吐量优化DTCC2012DTCC2012DTCC2012-Beijing7数据库性能评估及影响因素分析数据库性能评估指标系统吞吐量用户响应时间数据库命中率CPU使用情况内存使用情况磁盘I/O数据加载时间DTCC2012DTCC2012DTCC2012-Beijing8数据库性能评估及影响因素分析影响数据库性能的因素应用程序设计应用程序SQL编码Hint的乱用CBO优化器模式的选择适时使用绑定变量数据库设计针对OLTP与OLAP系统,分别优化数据安全性和可用性RAC技术+Dataguard技术其他内存使用率、数据加载、网络流量DTCC2012DTCC2012DTCC2012-Beijing9数据库性能优化实践应用程序设计优化调整有效的表设计引入分区表技术充分使用CPU资源使用并行特性完成CTAS使用并行特性完成索引创建有效的应用程序设计制定SQL编写规范限制动态SQLDTCC2012DTCC2012DTCC2012-Beijing10数据库性能优化实践应用程序SQL代码优化调整SQL执行计划使用索引技术使用反向索引降低索引块争用使用函数索引提高复杂计算效率索引重建,减少碎片保证数据的批量提交使用Hint调整执行计划——OLAPDTCC2012DTCC2012DTCC2012-Beijing11数据库性能优化实践数据库设计优化调整OLTP数据库密集型事务,以短事务以及小的查询为主采用Cache技术、B-tree索引技术与绑定变量OLAP数据库长事务、大查询采用分区技术、并行技术与适当考虑使用位图索引分开设计与优化针对OLTP和OLAP两种截然不同种类的系统分别进行优化DTCC2012DTCC2012DTCC2012-Beijing12数据库性能优化实践数据安全性和可用性优化调整OracleRAC技术架构高可用性高性能按需扩充DataGuard灾备技术结构物理DataGuard逻辑DataGuardDTCC2012DTCC2012DTCC2012-Beijing13数据库性能优化实践内存使用率优化调整Oracle内存分配策略实践OLTP预留:20、SGA:64、PGA:16OLAP预留:20、SGA:40、PGA:40基于成本的优化器CBO定期对数据库进行数据统计分析DTCC2012DTCC2012DTCC2012-Beijing14数据库性能优化实践数据访问优化调整本地管理的表空间字典管理的表空间劣势自动跟踪表空间里的空闲块可管理区大小,减少碎片位图管理方式减少了回滚段信息生成增加Oracle块大小OLAP——数据块增加一倍→读写性能改进50%DTCC2012DTCC2012DTCC2012-Beijing15数据库性能优化实践数据加载操作优化调整SQL*LoaderDirectPath创建格式化的数据块,直接写入避免了数据库内核的I/O远高于ConventionalPath模式使用外部表完成大量数据移迁移实现查询数据库以外文件中的数据方便卸载和迁移DTCC2012DTCC2012DTCC2012-Beijing16数据库性能优化实践物理存储优化调整SAME原则(StripeAndMirrorEverything)条带化以便增加吞吐量镜像提供在磁盘的容错能力使用裸设备消除文件系统的系统开销,20%性能提升使用ASM(自动存储管理)规划归档日志所需磁盘空间DTCC2012DTCC2012DTCC2012-Beijing17数据库性能优化实践网络流量优化调整使用物化视图复制数据借助物化视图日志减少跨库更新的网络流量使用远程过程调用由本地应用程序调用的远程存储过程减少了客户端与服务器端的网络通讯量DTCC2012DTCC2012DTCC2012-Beijing18数据库性能优化实践数据分开处理原则使用分区技术改善查询性能、改进数据库的可用性分区设置nologging减少大型事务的影响exchangepartition提高系统可用性使用临时表技术用于改进复杂事物的处理速度权衡性能优点和空间成本DTCC2012DTCC2012DTCC2012-Beijing19数据库性能优化实践自动工作负载存储库(AWR)生成AWR性能诊断报告原有statspack的升级,自动化运行工具AWR性能诊断报告内容关注Top5等待事件消耗资源的SQL语句—“运行时间”和“运行频度”给出系统一段时间内运行状况健康检查DTCC2012DTCC2012DTCC2012-Beijing20数据库性能优化实践从吞吐量角度提升数据库整体性能尽量保证在内存中完成数据库操作利用磁盘缓存进一步提升吞吐量分散磁盘I/O使用比较大的数据库BlockSize控制临时表空间的使用提升系统CPU性能DTCC2012DTCC2012DTCC2012-Beijing21数据库优化步骤与方法总结何时优化效率最高系统设计阶段和开发阶段数据库优化方法设定明确的优化目标创建最少可重复测试记录和自动测试避免常见错误DTCC2012DTCC2012DTCC2012-Beijing22优化成果数据库命中率优化对比DTCC2012DTCC2012DTCC2012-Beijing23优化成果系统CPU使用情况优化对比DTCC2012DTCC2012DTCC2012-Beijing24优化成果系统内存使用情况优化对比DTCC2012DTCC2012DTCC2012-Beijing25优化成果磁盘I/O负载优化对比DTCC2012DTCC2012DTCC2012-Beijing26总结对系统进行全面分析,找到主要瓶颈,确定优化方向原系统分拆为OLTP和OLAP两种不同类型的数据库针对OLTP和OLAP系统分别优化总结数据库优化步骤和方法DTCC2012DTCC2012DTCC2012-Beijing27展望系统架构阶段和研发阶段便考虑性能优化规范化数据库设计针对OLTP和OLAP不同类型数据库分别调优建立有效的监控和预防体系结构数据库性能优化是一个系统化循序渐进的过程DTCC2012DTCC2012DTCC2012-Beijing28Thankyou.DTCC2012DTCC2012