【See】自动化SQL审核 SQL优化管理平台

缘起于上家公司DBA同学的执着意愿,在他们的感染和帮助下开发了这套MySQL上线平台。

平台的核心功能是SQL操作,SQL语句优化。可以做到这些点,得益于开源力量的强大,在此感谢开源项目Inception及SQLAdvisor团队!

1 开源项目简介
Inception:一个集审核、执行、备份及生成回滚语句于一身的MySQL自动化运维工具。

SQLAdvisor:基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。
关于inception的意义,inception作者的一段话讲的很棒:

DBA从此就从繁重的审核、登上去执行,出错了很难回滚(如果提前没有备份的话)的被动局面解放了出来,突然发现,做DBA原来可以这么轻松,工作可以不饱和了,那就有更多的自由时间学习、进一步向自动化运维平台的实现等更智能化的方向去发展,是具有里程碑意义的。

2 See项目介绍

开发环境
后端:
Python 3.6
Django 2.0

前端:
Vue.js 2.9
iview-admin 1.3

以一张简图开始,图片中django web即是See项目,它接收用户处理SQL的请求,交给inception或者sqladvisor后请求到数据库,得到数据库的结果做进一步的处理。

这个是权限逻辑部分,开发、经理,DBA会略有不同, 都是傻瓜式的操作,点点点即可完成。inception审核过的工单,经理确认即为审批,审批后DBA可以在生产上执行。另外还提供了一个测试环境,此环境无需审批流程,发起工单的人即可执行,用于在上线前可以先在测试环境跑一遍sql,之后再生产环境操作。逻辑图如下:

See平台功能
1, SQL审核,选择目标数据库,点击提交即可,语法正确或错误的SQL都会返回相应的信息,成功后生成一个SQL工单

2, 工单处理页,审批人可以审批SQL工单,执行人可以对审批过的SQL工单做执行操作

3, SQL工单详情页

4, 权限规则,不同角色的人员拥有不同的权限

5, 流程设置,可以开启或关闭流程

6, 设置目标数据库(需要进行操作的数据库)

7, 用户管理页,用户信息特别是身份在此设置

8, 组管理

9, 表结构,SQL语句查询

10, 数据报表展示

后续功能规划
一. 日志功能,用ELK收集mysql慢日志,接入ELK做日志数据分析展示功能 。
二. 监控功能,接入监控系统数据,做监控状态的页面端展示,报警仍由监控系统去做。
三. ...

开源
See项目已开源啦,地址:
https://github.com/myide/see

欢迎start或提供支持。

原文地址:http://blog.51cto.com/5053795/2175628

时间: 2024-11-09 02:39:31

【See】自动化SQL审核 SQL优化管理平台的相关文章

4、python自动化运维——集中化管理平台Saltstack

集中化管理平台--Saltstack Saltstck作为服务器基础架构集中化管理平台,具备配置管理,远程执行,监控等功能.可以简单地理解为简化版的puppet,加强版的func.废话不多说,直接上手. Saltstack安装以及配置 安装所需要的组件 主控端:salt-master被控端:salt-minion 安装过程 1.安装所需要的epel作为部署saltstack的yum源:yum install -y epel 2.安装salt-master/salt-minionyum insta

5、python自动化运维——集中化管理平台Ansible

集中化管理平台Ansible 简介:Ansible是一种集成IT系统的配置管理.应用部署.执行特定任务的开源平台特点:1.部署简单,只需在主控端部署Ansible环境,被控端不用进行任何操作2.默认使用SSH协议对设备进行管理3.主从集中化管理4.提供一个Web管理界面和RESET API接口--AWX平台 Ansible安装及配置 1.安装ansible:yum install –y ansible 2.修改配置文件:/etc/ansible/hosts,添加主机IP. 193.192.168

SQL业务审核与优化

审核   什么是业务审核 类似与code review 评审业务Schema和SQL设计 偏重关注性能 是业务优化的主要入口之一 审核提前发现问题,进行优化 上线后通过监控或巡检发现问题,进行优化 Schema设计审核 表和字段命名是否合规 字段类型,长度设计是否适当 表关联关系是否合理 主键,更新时间保留字段等是否符合要求 约束,默认值等配置是否恰当 了解业务,表数据量,增长模式 数据访问模式,均衡度 根据业务需求,表是否需要分区,是否有数据什么周期 SQL语句审核 SQL语句的执行频率 表上

[转]Oracle DB 通过SQL 优化管理性能

? 将SQL 优化指导用于: – 确定使用资源最多的 SQL 语句 – 优化使用资源最多的 SQL 语句 ? 使用SQL 访问指导优化工作量 SQL 优化 SQL 优化进程 ? 确定没有很好地优化的SQL 语句. ? 优化各条语句. ? 优化整个应用程序. 一般情况下,效果最明显的优化工作是SQL 优化.没有很好地优化的SQL 会不必要地使用过多资源.这种低效率会降低可伸缩性.使用更多的OS 和数据库资源并增加响应时间.要对没有很好地优化的SQL 语句进行优化,必须先确定这些语句,然后再进行优化

关于sql语句的优化

最近在做mysql的数据库优化以及对sql语句优化的指导,写了一点文档,这个大家共勉一下! 数据库参数进行优化所获得的性能提升全部加起来只占数据库应用系统性能提升的40%左右,其余60%的系统性能提升全部来自对应用程序的优化.许多优化专家甚至认为对应用程序的优化可以得到80%的系统性能提升.因此可以肯定,通过优化应用程序来对数据库系统进行优化能获得更大的收益. 通常可分为两个方面: SQL语句的优化和数据库性能调优.应用程序对数据库的操作最终要表现为SQL语句对数据库的操作.而数据库性能调优是结

谈谈SQL 语句的优化技术

在SQL server 的性能优化过程中,TSQL的语句优化是很重要的一环.当您使用各种手段找出系统最需要优化的语句后,应该如何对该语句进行优化呢?下面列出一些TSQL 语句优化的常见技巧. 1.     语句的执行计划分析 首先要对该语句的执行计划(execution plan)进行分析,找出语句运行慢的原因.比如说, <>在检查执行计划是否包含table scan /index scan等昂贵的操作? <>对table, worktable是否进行了大量的逻辑读? <&g

SQL语句的优化

一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一.系统优化中一个很重要的方面就是SQL语句的优化.对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的SQL语句,提高系统的可用性. 在多数情况下,Oracle使用索

SQL语句性能优化--LECCO SQL Expert

SQL语句的优化是将性能低下的SQL语句转换成目的相同的性能优异的SQL语句. 人工智能自动SQL优化就是使用人工智能技术,自动对SQL语句进行重写,从而找到性能最好的等效SQL语句. 数据库性能的优化   一个数据库系统的生命周期可以分成:设计.开发和成品三个阶段.在设计阶段进行数据库性能优化的成本最低,收益最大.在成品阶段进行数据库性能优化的成本最高,收益最小. 数据库的优化通常可以通过对网络.硬件.操作系统.数据库参数和应用程序的优化来进行.最常见的优化手段就是对硬件的升级.根据统计,对网

大话SQL Server性能优化(MSSQL高并发、性能调控、实践)

大话SQL Server性能优化(MSSQL高并发.性能调控.实践)网盘地址:https://pan.baidu.com/s/1KxdfcQD0XGD3M2ja_Y7UWQ 提取码:435v备用地址(腾讯微云):https://share.weiyun.com/5dTuZJ9 密码:xhmge4 本课程源于一家国内较知名的ERP厂商的一款产品出现性能问题后通过咨询服务解决了性能问题,然后根据自身多年技术培训.项目开发.产品研发与运维管理.软件公司内部咨询等经验,整理了在SQL Server 20