作者介绍
蒋健,云趣网络科技联合创始人,11g OCM,多年Oracle设计、管理及实施经验,精通数据库优化,Oracle CBO及并行原理。云趣鹰眼监控核心设计和开发者,资深Python Web开发者。
多行业SQL审核落地总结
近年来落地了数十个行业(包含银行、制造业、保险等)的SQL审核项目,在项目对接需求,直到后期验收,完成优化目标的过程中,有一些感悟和总结,本文做一个分享。
首先要明确一下SQL审核的对象范围是针对数据库层面的,涉及性能、安全风险的SQL,而非业务逻辑上的风险SQL(常见的如敏感信息的查询、删除、变更等)。
从应用场景上主要是4个核心的场景:生产环境优化具体业务,生产环境降低业务高峰期CPU/IO,预生产(或测试)环境拦截低效SQL,开发环境减少不合规SQL。
生产场景优化具体业务
实施案例中以制造业为主,具体需求为对应的业务系统(OA、SAP、MES等)操作慢,优化验收目标也比较简单,实际业务操作变快达到验收目标即可。
这类优化大多比较简单,系统的问题基本为常见优化问题,且访问生产库,主机基本没限制,通过系统自身的优化建议报告,建索引后,收集统计信息后,也方便验证,项目进度快。
项目难点为完成业务操作与数据库中SQL的对应。通过业务穿特定参数,结合ASH历史进行模糊查询可完成定位。得到SQL语句后,带入绑定变量,统计运行消耗时间,与业务操作时间对比,确认出是否优化SQL能到达预期效果,再实施优化。
降低业务高峰期CPU/IO