首页 > 数据库 > 国内数据库 > 「分布式技术专题」SQL 解析的 AP/TP 判别
通常 SQL语句可以分为分为四大类: 数据查询语言 DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。
但在数据的操作上,可以根据 SQL对于IO、CPU、内存等资源的消耗可以分为 AP的SQL和TP的SQL。

通常情况下单个 TP的SQL语句对于资源的消耗是非常的少的。而AP的SQL会消耗量的IO、内存、CPU等资源。过程如下图:
ap_tp_decide
SQL语法可以解析为抽象语法解析树,通过观察者模型对语法解析数进行规则分析,提取出SQL语法的关键信息点可以进行简单的做甄别出SQL的类别。如TP 类SQL会有事务级别的插入、修改、删除等操作,也会有指定条件的简单查询等操。AP类SQL通常会有大量的分类统计与语法嵌套,根据类似SQL的规则的甄别可以通常可以判断出70%左右的SQL的类别。对于无法做到甄别的可以再通过算法模型做进一步判别
基于算法模型的判别需要从几个步骤入手:训练集、验证集数据准备与标注、特征变量处理、训练模型选择、模型参数优化、验证准确性、根据验证准确性做进一步优化。
开启数据库的日志记录功能,把 SQL语句以及对应的资源消耗等记录记录下来,用做算法模型需要使用的数据,并把数据分成训练集合验证集。
可以对数据的特征变量进行进一步加工处理,如对 SQL可以进一步处理为语法树,根据语法树展开放入到特征变量中去。
本次做的处理是分类模型,是对 SQL语句或者SQL解析后的语法树进行分类,所以我们可以选择分类模型来处理这个事情,但由于数据库对于性能要求很高,所以在选择时也要从模型调用的性能做为考虑。
通常指的就是模型调参,这个是一个算法模型的常规做法根据不同的参数进行优化。
把数据代入到验证集中对数据做进一步校验,验证算法的准确度。
以上为 SQL 解析的 AP/TP 判别, 「分布式技术专题」是国产数据库 hubble 团队精心整编,专题会持续更新,欢迎大家保持关注。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026685/viewspace-2935007/ ,如需转载,请注明出处,否则将追究法律责任。