【DB吐槽大会】第51期 - 缺乏SQL审查功能

简介: 大家好,这里是DB吐槽大会,第51期 - 缺乏SQL审查功能

背景


1、产品的问题点

  • 缺乏SQL审查功能

2、问题点背后涉及的技术原理

  • 业务上线通常伴随SQL的变更、新增或DDL操作等. 这些数据库操作有什么风险? 在大多数时候取决于开发者或DBA的判断. 例如:
  • SQL的基准是什么? 吞吐诉求、RT诉求. 数据库是否满足业务需求?
  • 新增的SQL会不会导致数据库性能瓶颈, 并且影响已有业务.
  • SQL 是不是处于优化执行路径? 需不需要加索引? 需不需要加hint? 需不需要改写SQL等? 需不需要锁表? 需不需要在低峰期操作?
  • 回退预案是什么?
  • 操作流程是什么?
  • 哪些操作有删库跑路风险? 例如DROP或truncate的DDL、没有条件或条件绝对为true的update或delete.

3、这个问题将影响哪些行业以及业务场景

  • 通用

4、会导致什么问题?

  • 没有SQL审查功能, 每次业务上线都是提着脑袋在干. 随时有删库跑路、业务雪崩等风险.

5、业务上应该如何避免这个坑

  • 规范操作流程
  • 增加变更审查流程
  • 增加回退预案
  • 增加备份流程

6、业务上避免这个坑牺牲了什么, 会引入什么新的问题

  • 人力成本增加, 同时取决于审查人员的责任心、经验、技术能力等. 同样存在风险.

7、数据库未来产品迭代如何修复这个坑

  • 希望在内核层面支持SQL 审查功能.
  • 输入SQL、并发、吞吐、RT等诉求.
  • 返回报告: 评估变更的耗时, SQL的模拟QPS和RT, 数据库的资源消耗等.
  • 揭示风险, 例如无法满足RT|QPS预期、资源打满、删库跑路、雪崩 等风险.
  • 给出SQL优化建议等.
  • 希望能支持快速闪回, 变更快速回退能力.
  • 希望支持定时变更, 无人值守变更. 解放劳动力.



相关文章
|
6月前
|
SQL 运维 关系型数据库
一款 SQL 自动检查神器,再也不用担心 SQL 出错了,自动补全、回滚等功能大全
一款 SQL 自动检查神器,再也不用担心 SQL 出错了,自动补全、回滚等功能大全
125 0
|
1月前
|
SQL 数据库
LangChain-09 Query SQL DB With RUN GPT 查询数据库 并 执行SQL 返回结果
LangChain-09 Query SQL DB With RUN GPT 查询数据库 并 执行SQL 返回结果
33 2
|
21天前
|
SQL 关系型数据库 MySQL
SQL中,可以使用 `ORDER BY` 子句来实现排序功能
【10月更文挑战第26天】SQL中,可以使用 `ORDER BY` 子句来实现排序功能
50 6
|
1月前
|
SQL 数据库
LangChain-08 Query SQL DB 通过GPT自动查询SQL
LangChain-08 Query SQL DB 通过GPT自动查询SQL
17 3
|
23天前
|
SQL 关系型数据库 MySQL
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
34 0
|
2月前
|
SQL 运维 程序员
一个功能丰富的SQL审核查询平台
一个功能丰富的SQL审核查询平台
|
3月前
|
SQL 流计算
Flink SQL 在快手实践问题之Window TVF改进窗口聚合功能如何解决
Flink SQL 在快手实践问题之Window TVF改进窗口聚合功能如何解决
30 1
|
3月前
|
SQL 存储 OLAP
OneSQL OLAP实践问题之Flink SQL Gateway的功能如何解决
OneSQL OLAP实践问题之Flink SQL Gateway的功能如何解决
39 1
|
3月前
|
SQL 数据处理 数据库
SQL正则表达式应用:文本数据处理的强大工具——深入探讨数据验证、模式搜索、字符替换等核心功能及性能优化和兼容性问题
【8月更文挑战第31天】SQL正则表达式是数据库管理和应用开发中处理文本数据的强大工具,支持数据验证、模式搜索和字符替换等功能。本文通过问答形式介绍了其基本概念、使用方法及注意事项,帮助读者掌握这一重要技能,提升文本数据处理效率。尽管功能强大,但在不同数据库系统中可能存在兼容性问题,需谨慎使用以优化性能。
59 0
|
4月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
下一篇
无影云桌面