企业级SQL审核平台的深度评测

前言

在上文PawSQL: 企业级SQL审核工具的新玩家中说到,市场上主流的SQL审核工具,Yearning、Archery、Bytebase的审核模块、爱可生的SQLE、云和恩墨的SQM等,在规则覆盖度、或是正确率等方面存在明显不足,导致企业在引入产品后难以进行落地;PawSQL通过设计理念和核心技术的突破性创新,推出了自己的企业级SQL审核平台。

本次我们将深度评测这几款市场上主流SQL审核工具在审核规则覆盖度审核结果正确性方面的表现。

规则覆盖度评测

为了提供直观的比较基础,我们简单地从规则数进行评价。我们从各个产品的最新文档或是DEMO环境获取了审核规则数最多的TOP5数据库类型

 

由于Yearning、Archery和Bytebase的规则主要集中在DDL审核上,还难以称之为企业级的SQL审核平台,因此本文将重点放在SQLE、SQM和PawSQL三个企业级SQL审核产品的对比评测上。

SQLE:MySQL的审核专家

SQLE提供了154条针对MySQL的审核规则,以及对TDSQL for MySQL和OceanBase for MySQL的专门优化,显示出其在MySQL领域的专业性和深度。

SQM:Oracle的坚强后盾

SQM在Oracle数据库的审核上展现出了其强大的实力,提供了高达188条的审核规则。这一数字不仅体现了SQM对Oracle平台的深度支持,也反映了其在帮助企业应对复杂Oracle环境方面的能力;SQM为MySQL也提供了153条规则,说明它对MySQL也有非常好的规则覆盖度。

PawSQL:多种数据库审核的全能选手

与SQLE和SQM专注于特定数据库不同,PawSQL注重数据库类型支持的全面性和均衡性。PawSQL为MySQL、PostgreSQL、openGauss、Oracle和GoldenDB等多种数据库提供了大量的审核规则,规则数在各个数据库上都异常均衡,显示出其在多数据库环境中的优秀能力。PawSQL的优势在于能够为企业提供一致的审核体验,无论他们的数据库环境如何多样化。

审核正确性评测

由于SQLE、SQM和PawSQL三个产品在MySQL数据库上的规则数比较接近,我们都采用MySQL数据库的审核集进行评测。对于审核的对象,我们采用了TPC-H基准测试的8个建表语句和22个测试查询语句;我们采用离线审核的方式,以减少对环境的依赖。

DDL(建表语句)审核

下面是TPC-H基准测试的8个建表语句在三个平台上的审核结果。

SQM

 

SQLE

 

PawSQL

 

审核对比分析

可以看到,虽然SQLE和PawSQL的规则丰富度比SQM更好一些,但是三者在正确性方面都表现不错,SQLE和PawSQL出现的一个共同的误报问题,这是由于DDL外键/索引解析的错误导致的,案例如下:

CREATE TABLE ORDERS (  O_ORDERKEY INT NOT NULL,  ...  KEY ORDERS_FK1 (O_CUSTKEY),  CONSTRAINT ORDERS_IBFK_1 FOREIGN KEY (O_CUSTKEY) REFERENCES CUSTOMER (C_CUSTKEY)) ENGINE=INNODB

对于如上的建表语句,`KEY ORDERS_FK1 (O_CUSTKEY)`定义的索引会被外键使用。所以不会产生两个非主键索引,即无论是否`KEY ORDERS_FK1 (O_CUSTKEY)`是否存在,数据库都只会创建一个二级索引。PawSQL在其最新的版本中已完成了对此问题的修复。

DQL(查询语句)审核

下面是TPC-H基准测试的22个查询语句在三个审核平台上的审核结果。

SQM

 

解析能力:SQM在解析SQL语句时遇到了困难,无法解析5个SQL语句,占比超过20%,这表明其对Interval常量、CTE和substring等特殊语法的处理存在局限。

误告警率:在给出的12类SQL警告中,有4类为误告警,误告警率达到了33.3%,这对于SQL审核任务的准确性和效率构成了严重影响。

SQLE

 

解析能力:SQLE的表现稍好于SQM,无法解析的SQL语句有1个,占比超过5%,可能是由于无法解析CTE的特殊语法。

误告警率:SQLE给出的12类SQL警告中,有1类为误告警,误告警率接近10%,虽然比SQM低,但仍然对审核任务有一定的负面影响。

PawSQL

 

解析能力:PawSQL展现了出色的解析能力,能够完成所有22个SQL语句的解析,没有出现无法处理的情况。

警告准确性:PawSQL给出20种SQL警告或提示,远超SQLE和SQM,PawSQL不仅关注SQL语句的规范性和正确性,还提供了性能优化的规则,并且对潜在的正确性问题(NPE重写,IN可空子查询可能导致结果集不符合预期)进行了提示,显示了其规则的精确性和深入分析SQL结构的能力。

DQL审核对比分析

  • 解析能力:PawSQL在解析能力方面明显优于SQM和SQLE,能够处理所有测试SQL语句,而SQM和SQLE都存在无法解析的情况。
  • 误告警率:SQM的误告率最高,达到33.3%,远高于SQLE的接近10%和PawSQL的无误告警,这可能严重影响用户对审核结果的信任度和审核任务的效率。
  • 规则精确性和深度:PawSQL不仅在规则精确性上表现优秀,还基于对SQL结构的深入理解提出了SQL性能调优的建议,而SQM和SQLE在这方面的表现则相对较弱。

说明

1. 本次测评中使用的SQLE的版本为部署在公网的企业版demo环境,地址为(http://demo.sqle.actionsky.com:8889/); 评测使用的SQM版本号为6.2,二者可能不是具有最新功能的版本,评测结果仅供参考。

2. 评测使用的TPCH测试集的DDL和DQL语句可以通过以下地址获取,读者可以自行验证。

https://github.com/Paw-SQL/PawSQL/tree/main/document/TPCH-Script(MySQL-Syntax)

总结

SQL审核是SQL代码投入生产的最后一道关卡,选择正确的SQL审核工具对于确保确保SQL代码质量至关重要。评测结果表明,即使用MySQL规则集作为测试对象,PawSQL在这次测试中表现也是最佳。借用友商的一句话,史上最强的SQL审核平台,不服来战。

关于PawSQL

PawSQL专注数据库性能优化的自动化和智能化,提供的解决方案覆盖SQL开发、测试、运维的整个流程,支持MySQL,PostgreSQL,openGauss,Oracle等各种数据库。

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/88769.html

(0)
guozi's avatarguozi
上一篇 2024年6月4日 上午9:36
下一篇 2024年6月4日 上午9:41

相关推荐

  • 发包服务器哪家好?

    在网络安全加速行业,发包服务器是必不可少的一部分。那么什么是发包服务器?它有什么作用和优势?如何选择最合适的发包服务器?下面将为您介绍网络安全加速行业中的发包服务器,让您更好地了解…

    行业资讯 2024年4月14日
    0
  • 免费php空间申请

    想要搭建自己的网站,但又不想花费太多的成本?那么今天就来为大家介绍一种非常实用的方法——免费php空间申请。这种方式可以让您免费使用php空间,轻松搭建自己的个人网站或者小型商业网…

    行业资讯 2024年4月17日
    0
  • 防止域名被360判断并拦截,怎么防止域名解析的ip被劫持呢

    为了防止域名解析劫持,您应该选择值得信赖的DNS服务提供商。 DNS服务商负责管理和维护DNS服务器,有的安全性能较高,可以有效防止IP劫持。因此,我们在选择DNS服务商时,建议选…

    行业资讯 2024年5月18日
    0
  • 网站被攻击,网站被攻击了怎么处理网警

    任何网站所有者最不想看到的就是他们的网站受到攻击。攻击可能导致网站瘫痪或泄露用户信息。那么,如何让网站遭受攻击后恢复正常呢?这就是我们今天要讨论的内容。首先,我们将解释网站受到攻击…

    行业资讯 2024年5月10日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注