活动简介
数据库优化是DB2数据库运维工作中较为重要的部分,也是比较难的部分。数据库优化工作的内容很多,包括存储、操作系统、数据库系统、应用程序等等多个层面。
在日常运维的过程中,我们最常遇到的问题是应用程序层面的问题,其中包括了SQL语句的性能问题。
常见的SQL语句性能问题表现为运行时间超长,消耗大量CPU和内存,占用大量临时表空间,造成大量锁等待、超时、死锁、锁升级等等。
应用维护和开发人员往往会首先要求系统管理员和数据库管理员排查操作系统、存储、数据库参数和网络等方面的问题。
其实,在多数情况下,问题出在应用程序、SQL语句、表的索引设置等方面,通过调整系统配置和数据库参数并不能解决根本问题。
例如,江苏农信某系统经常发生锁升级和锁等待事件,应用开发人员多次要求数据库管理员调高LOCKLIST和MAXLOCK这两个数据库参数,但通过多次调高,都解决不了问题。抓取动态SQL语句,我们发现,提交该SQL请求的应用程序设置的隔离级别是RS,导致在运行的时候获取了大量的锁造成了锁升级,调整隔离级别后,便再也没有发生类似问题。
本次答疑活动分享的资料,主要从日常工作入手,介绍了我们日常工作中排查性能问题常用的工具,利用好这些工具,可以在突发问题时,快速发现问题所在。同时,介绍了保持数据库性能的两个日常动作:RUNSTATS和REORG,通过制定合理的策略,可以有效地规避性能问题。最后,介绍了如何去获取和分析SQL语句的执行计划,以及如何选择合适的字段建立有效的索引,并使用了江苏农信某交易类系统一次突发性能事件的实例来详细说明分析的过程。
本次答疑活动,可以基于专家分享的资料,结合自己日常工作中遇到的实际问题,提出您比较关心的希望解决的疑难问题。欢迎大家参与!
专家介绍
丁翼 江苏农信数据库管理员
负责江苏农信DB2数据库的日常运维管理工作,在DB2数据库运维方面有着丰富的经验,尤其擅长DB2数据库调优,擅长处理突发性事件及复杂问题。