SQL审核
在刚刚结束的Oracle技术嘉年华大会上,"SQL审核"这个概念被屡次提及,成为一个重要的核心关键词。云和恩墨的技术专家罗海雄和去哪儿网的技术专家王竹峰分别做了相关的主题分享。
SQL审核的提出,是基于数据库的性能优化实践和屡见不鲜的“抢险救灾”,经过总结大家发现,80%的数据库性能问题来自SQL,而事后的SQL优化和救火已经不能满足今天业务快速发展和高可用连续性的需求。
SQL审核是指,将数据库线上系统的SQL优化和问题诊断,推进到产品开发测试阶段(上线前),通过前期的SQL审核管控,将80%的SQL问题消灭在萌生阶段;而对于线上运行系统,可以通过同样的SQL审核过程,发现和解决潜在的性能问题,做到提前预防,防患于未然。
在互联网企业,SQL审核是一直在进行的工作,基于这样的工作,DBA在大量前置,逐渐和开发进行融合。
去哪儿网的MySQL技术专家王竹峰就展示了他们对于SQL审核理解,传统的人肉审核方法即繁重又容易出现误判,所以这项工作必须要智能化和产品化。
在云和恩墨的技术专家罗海雄的主题中,不约而同的阐述了SQL审核的重要意义。
在今天互联网化的开发现状之下,快速更新迭代、产品周期缩短,这些都可能带来不稳定的因素。
本次大会上,两个产品和解决方案出现在大家的视野中。
罗海雄展示了云和恩墨基于Oracle数据库的SQL审核产品工具 - z3
。这个产品可以通过内置的算法引擎,可定制的抓取数据库中执行的SQL及其详细数据,通过过滤分析,进行量化的积分趋势展现,并将SQL问题高亮显示,指导程序员的优化分析,并可以通过内置的工作流由DBA进行优化,变更管理同时被内置;
去哪儿网的产品名称是Inception,Inception是一个命令行工具,通过脚本提交审核,可以通过一系列的检测(包括语法、语义、规则检测等)来推出反馈,其目标同样是控制SQL中可能存在的种种低效或误区:
以下是Inception的输出结果,输出的内容整理如下:
云和恩墨的z3产品,具备更完善的图形和客户端展现,下图显示了工作对于SQL审核项的问题探索,高亮显示,以及工作流程设置,通过构建SQL集合,可以提交DBA进行集中审核,完成工作流转。
通过会后的听众热议和交流,我们看到,提前预防性的运维和管理已经引起了大家的广泛重视,而工欲善其事,必先利其器,通过好的工具提升工作效率是大家的共同关注所在。