百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

9年积淀SQL审核最佳实践核心观点

ccwgpt 2025-03-01 13:09 79 浏览 0 评论

随着信息技术的高速发展,IT系统由传统的烟囱式架构向平台化、去中心化转变,通过业务模块无状态化改造,结合Docker等容器技术,应用系统可以轻松实现秒级线性扩展以满足业务增长的需求。SQL语句作为应用系统与数据库之间的桥梁,在高并发下,只要质量稍有下降都会导致数据库成为性能瓶颈。虽然BAT等互联网巨头具备较强的核心掌控力以及完备的架构和工具链,能在一定程度上减轻数据库压力,但仍然需要完善的管理流程与规范约束开发人员合理编写SQL。

自2007年起,在中国移动浙江公司信息技术部副总经理、国内首批Oracle 9i OCM王晓征的带领下,浙江移动与新炬网络联合制定了浙江移动首版《IT系统数据库开发规范》,历经9年更新迭代百余次,目前已积淀2万余字,涵盖数据库设计、用户创建、数据同步、应用连接、高可用设计、对象命名、对象设计、SQL编写、数据库安全等规范,并且通过完善的流程管理,达到了对海量数据经营与业务数据访问的管理。经过多年的探索与实践,浙江移动已形成了一套敏捷、高效的SQL审查方案。

浙江移动作为全国首个提出并落地SQL审查方案的运营商,经过多年步道与传播,让众多兄弟公司与互联网企业意识到SQL审查的重要性并推进落地。经浙江移动独家授权,在此分享浙江移动在落地SQL审查方法论时总结得出的三个核心观点:

一、工具是SQL审查手段但不是万能

浙江移动数据平台组于2009年研发出第一代SQL审查工具,并将《IT系统数据库开发规范》中的规范转化成规则,自动审查上线SQL脚本中的违规信息。截至目前,该工具已迭代6个版本,具备SQL规则管理、SQL代码管理、SQL违规报表、SQL自动优化以及按照业务系统、模块、开发商、开发人员等多维度报表的功能。在工具化建设与推进的过程中,工具发挥着方便有效管理、审查、跟进SQL的作用,并且可以随时汇总报表展示SQL审查成果。但是数据库作为操作数据的平台,除了应用之外,还会有诸多客户端接入执行相应的SQL,而工具通常在中间件、数据库中进行部署,因此没有业务层信息带入,工具无法捕获SQL的用途、发起设备、开发商、开发人员等信息,这就对后续整改带来了巨大的工作量。当然,也有部分SQL审核工具通过扫描代码实现,但代码中通常采用动态SQL实现逻辑,因而无法扫描出完整的SQL与相应信息。截至目前,浙江移动只管控了一部分的核心SQL,约调用量的80%。所以说,工具只是SQL审查的一小部分,别把工具当万能。

二、SQL作为企业软资产,需要持续运营

SQL作为企业的软资产时刻伴随着数据的产生、变迁与消亡,与数据一样,SQL资产也需要进行严格管控。如果任由SQL野蛮生长,将会引发严重的系统性能问题、扩展性问题、安全性问题,甚至会导致业务数据不可恢复的破坏。SQL的管控不仅仅局限在SQL运行质量,而应该覆盖SQL全生命周期,包括SQL创建、SQL运行、SQL下线等阶段的相关信息,例如创建人、所属业务、上线时间、执行频率、调用模块、用途以及上线后SQL在各阶段的运行数据等。开发DBA团队应通过持续运营,为SQL打上标签,对SQL进行全生命周期管控。

三、快速转型,这一刻拥抱DevOps

在信息技术快速变革的推动下,数据平台组由ITIL驱动向DevOps转型,浙江移动联合新炬网络建立了直接面向开发人员的开发DBA小组。在开发阶段,开发人员须在审查平台上提交SQL代码,同时可以申请协助服务,开发DBA会提供面对面纠错,并协调开发一起录入SQL相关信息。此举大大提升了SQL代码修复效率,打破了后期在中间件、数据库中扫描代码却找不到SQL开发人员的尴尬局面,为SQL资产运营注入坚实的力量。

广义上的开发DBA与本文所述略有差异,以下内容摘自知乎作为适当补充:

开发DBA分为三种。第一种是源码方向,通过修改源码来解决实际问题,比如提高性能、可用性、安全性等;第二种是自动化方向,在数据库周边提供自动化系统来服务数据库业务。包括但不限于自动运维、监控、日志、备份、高可用,甚至是中间件、消息总线、异构数据同步等等,大部分时间满足运维DBA的需求;第三种是辅助开发人员编写业务SQL、PL/SQL开发。

浙江移动的开发DBA小组除了SQL审核以外,还需负责数据标准审核、物理模型审核、生命周期审核、数据分布审核、数据安全审核,开发DBA基于《IT系统数据库开发规范》对数据相关的属性进行全生命周期管控。与广义上的开发DBA不同,浙江移动的开发DBA肩负着质检总局的重要使命,为生产系统的可持续发展与安全稳定做出不可替代的贡献。

相关推荐

一个基于.Net Core遵循Clean Architecture原则开源架构

今天给大家推荐一个遵循CleanArchitecture原则开源架构。项目简介这是基于Asp.netCore6开发的,遵循CleanArchitecture原则,可以高效、快速地构建基于Ra...

AI写代码翻车无数次,我发现只要提前做好这3步,bug立减80%

写十万行全是bug之后终于找到方法了开发"提示词管理助手"新版本那会儿,我差点被bug整崩溃。刚开始两周,全靠AI改代码架构,结果十万行程序漏洞百出。本来以为AI说没问题就稳了,结果...

OneCode低代码平台的事件驱动设计:架构解析与实践

引言:低代码平台的事件驱动范式在现代软件开发中,事件驱动架构(EDA)已成为构建灵活、松耦合系统的核心范式。OneCode低代码平台通过创新性的注解驱动设计,将事件驱动理念深度融入平台架构,实现了业务...

国内大厂AI插件评测:根据UI图生成Vue前端代码

在IDEA中安装大厂的AI插件,打开ruoyi增强项目:yudao-ui-admin-vue31.CodeBuddy插件登录腾讯的CodeBuddy后,大模型选择deepseek-v3,输入提示语:...

AI+低代码技术揭秘(二):核心架构

本文档介绍了为VTJ低代码平台提供支持的基本架构组件,包括Engine编排层、Provider服务系统、数据模型和代码生成管道。有关UI组件库和widget系统的信息,请参阅UI...

GitDiagram用AI把代码库变成可视化架构图

这是一个名为gitdiagram的开源工具,可将GitHub仓库实时转换为交互式架构图,帮助开发者快速理解代码结构。核心功能一键可视化:替换GitHubURL中的"hub...

30天自制操作系统:第六天:代码架构整理与中断处理

1.拆开bootpack.c文件。根据设计模式将对应的功能封装成独立的文件。2.初始化pic:pic(可编程中断控制器):在设计上,cpu单独只能处理一个中断。而pic是将8个中断信号集合成一个中断...

AI写代码越帮越忙?2025年研究揭露惊人真相

近年来,AI工具如雨后春笋般涌现,许多人开始幻想程序员的未来就是“对着AI说几句话”,就能轻松写出完美的代码。然而,2025年的一项最新研究却颠覆了这一期待,揭示了一个令人意外的结果。研究邀请了16位...

一键理解开源项目:两个自动生成GitHub代码架构图与说明书工具

一、GitDiagram可以一键生成github代码仓库的架构图如果想要可视化github开源项目:https://github.com/luler/reflex_ai_fast,也可以直接把域名替换...

5分钟掌握 c# 网络通讯架构及代码示例

以下是C#网络通讯架构的核心要点及代码示例,按协议类型分类整理:一、TCP协议(可靠连接)1.同步通信//服务器端usingSystem.Net.Sockets;usingTcpListene...

从复杂到优雅:用建造者和责任链重塑代码架构

引用设计模式是软件开发中的重要工具,它为解决常见问题提供了标准化的解决方案,提高了代码的可维护性和可扩展性,提升了开发效率,促进了团队协作,提高了软件质量,并帮助开发者更好地适应需求变化。通过学习和应...

低代码开发当道,我还需要学习LangChain这些框架吗?| IT杂谈

专注LLM深度应用,关注我不迷路前两天有位兄弟问了个问题:当然我很能理解这位朋友的担忧:期望效率最大化,时间用在刀刃上,“不要重新发明轮子”嘛。铺天盖地的AI信息轰炸与概念炒作,很容易让人浮躁与迷茫。...

框架设计并不是简单粗暴地写代码,而是要先弄清逻辑

3.框架设计3.框架设计本节我们要开发一个UI框架,底层以白鹭引擎为例。框架设计的第一步并不是直接撸代码,而是先想清楚设计思想,抽象。一个一个的UI窗口是独立的吗?不是的,...

大佬用 Avalonia 框架开发的 C# 代码 IDE

AvalonStudioAvalonStudio是一个开源的跨平台的开发编辑器(IDE),AvalonStudio的目标是成为一个功能齐全,并且可以让开发者快速使用的IDE,提高开发的生产力。A...

轻量级框架Lagent 仅需20行代码即可构建自己的智能代理

站长之家(ChinaZ.com)8月30日消息:Lagent是一个专注于基于LLM模型的代理开发的轻量级框架。它的设计旨在简化和提高这种模型下代理的开发效率。LLM模型是一种强大的工具,可以...

取消回复欢迎 发表评论: