数据库调第一篇


    数据库调优可以使数据应用运行得更快,其目标是使数据库有更高的吞吐量和更短的响应时间.被调优的对象是整个数据库管理系统的总体。在数据库层面进行调优,有很多资源、数据库配置参数需要考虑.数据库调优方式通常有以下几种

  人工调优

       人工调优主要依赖与人,效率低下;要求操作者完全理解常识所依赖的原理,还需要对应用数据库系统,操作系统以及硬件有广泛而深刻的理解

 基于案例调优

      总结典型应用案例情况中数据库参数的推荐配置只、数据库逻辑层设计等情况,从而为用户的条用工作提供一定的参考和借鉴,要求但是这种方式忽略了系统的动态性和不同系统间存在的差异

 自调优

      为数据库系统建立一个模型,根据“影响数据库系统性能效率的因素”,数据库系统自动进行参数的配置.一些商业数据库实现了部分自调优,典型的如下Oracle提供了如下一些技术或工具

      1.Redo Logfile Sizing Advisor :为避免因频繁出现的检查点而导致躲过的磁盘IO,系统可推荐重做日志文件的最佳大小

      2.Automatic Checkpoint tuning :为取得练好的恢复速度,同时降低对正常吞吐量的影响,系统可以自动优检查点。

      3.Automatic Shared Memory Tuning :为高效地利用内存并提高性能,系统自动地配置与System Global Area(SGA)内存相关的参数(如高缓冲区、共享池等);

      4.Transaction Rollback and Recovery Monitoring :为掌握事务情况,系统可估计回滚一个事务哟啊话多少时间,监视呗回复的事务进度,斌估计事务回复的平均速度。

     5.SQL Tuning Adivsor :为提高SQL 语句的执行效率,系统可自动调优高成本的SQL语句,给出经理索引的建议,SQL重写的建议等

     6.SQL Analyzer :对SQL语句的不通查询执行计划进行性能分析和比较

     7.SQL Access Advisot :对物理设计给出改进建议

     8.SQL Plan Management :使SQL语句能够根据环境的变化选择稳定、高效的查询执行计划

     9.Segment Advisor :根据对象的框架碎片化程度,给出是否应该对对执行新的在线收缩操作的建议,提供关于段的历史增长趋势的报告,为容量规划提供有效的信息

     10.Undo Advisor :帮助管理员在Flashback和非flashback 特性中调整撤销表框架打小做出正确的判断;为管理员恰当的设置,UNDO_RETENTION提供建议,避免快过于陈旧

 1.应用情况估算

   一样的使用方式,(吧业务逻辑转换为数据库的读写分布逻辑,以读多写少或者读写均衡等来区分OLAP和OLTP)应用对数据库的并发情况,并发是否可以池化等)数据量、对数据库的压力,峰值压力做一个预算。

 2.系统选型策略

     确定什么样的数据库可以使用应用需求,并确定使用开元的数据库还是商业的数据库,使用集群的还是单机系统,同时对操作系统,中间件,硬件网络等选型

3.数据库模型的设计

    主要根据业务逻辑,从几个角度考虑表的逻辑结构,内容如下

     1.E-R模型设计:遵循E-R模型设计原理,偶尔的、适当程度的飞规范化可以改善系统查询性能

     2.数据库逻辑分布策略:目的是减少数据请求中不必要的数据量,只返回用户需要的数据,可用的激素如分区、用E-R模型分表等(如互联网企业典型的用法,根据业务的不同,进行分库、分离等操作)

     3. 数据物理存储策略:目的是减少IO操作,如启用压缩技术、把索引和表数据存储分开,不同的表数据分布在不同的表空间上,不同的表空间分布在不同的物理存储上(尤其是读写量大的表空间分布在不同的物理存储上),日志、索引和数据分布在不同的物理存储上等

     4.索引:在查询频繁的对象上建立当的适当的索引,使索引的正效应大于负效应(索引的维护在消耗)

SQL设计:编写正确的、查询效率高的SQL语句,依据的主要是“查询重写规则”编写语句的过程中要注意,要有意识的保障SQL能利用到索引

数据库功能的启用:数据库为了提高性能提供了一些功能,可合理使用,具体如下

   1.查询重用:根据实际情况进行配置,可缓存查询计划、查询结果等

   2.数据库参数设置:可设置合适的参数,如数据缓冲区等。

模型系统预运行:在备用系统上模拟实际运用环境,加大压力系统测试,提前发现问题

系统监控分析:在工业环境下,加强对系统的运行监控和日常的分析工作,具体如下

     1.系统运用表现:手机用户对应用系统的使用意见,系统存在问题等,因为这些是用户在第一时间发现

     2.OS环境监控:实时监控CPU、内存、IO等,并对比实时情况与历史正常情况

     3.数据库内部状况的监控:一些数据库提供系统表、视图、工具等手段。向用户提供数据运行过程中内部状况信息,如锁的情况,这些都需要实时监控,对比实时情况与历史正常情况

     4.日志分析:在数据库日志中、操作系统的日志中找出异常事件,定位问题


数据库调优阶段分析

       第一阶段:需求分析期,使用应用情况的估算、系统选型策略

       第二阶段:项目设计期,使用数据模型的设计

       第三阶段:开发期,使用SQL设计,数据库功能的开启

       第四阶段:测试与试运行,使用数据库功能的启用、系统模型预运行、系统监控分析

       第五阶段:上线和维护,使用系统监控分析



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值