SQL审核 | 新增SQL影响行数预测功能,助力 SQL 优化!


 <p>2.2304.0-pre2</p> 

<p>SQLE Release Notes</p> 

SQL审核工具 SQLE 2.2304.0-pre2 于今天发布。以下对新版本的 Release Notes 进行详细解读。

注:本次升级为预览版本,仅可用新功能试用,不保证平滑升级

文章主要分为以下三部分内容: 

一、SQLE 项目介绍 

二、新版本主要功能介绍 

三、完整的 release 信息

<p>一、SQLE 项目介绍<br></p> 

爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。

SQLE 获取

<table> 

  <tr> 
   <th>类型</th> 
   <th>地址</th> 
  </tr> 

 <tbody> 
  <tr> 
   <td>版本库</td> 
   <td>https://github.com/actiontech/sqle</td> 
  </tr> 
  <tr> 
   <td>文档</td> 
   <td>https://actiontech.github.io/sqle-docs-cn/</td> 
  </tr> 
  <tr> 
   <td>发布信息</td> 
   <td>https://github.com/actiontech/sqle/releases</td> 
  </tr> 
  <tr> 
   <td>数据审核插件开发文档</td> 
   <td>https://actiontech.github.io/sqle-docs-cn/3.modules/3.7_auditplugin/auditplugin_development.html</td> 
  </tr> 
  <tr> 
   <td>社区版在线体验</td> 
   <td>http://demo.sqle.actionsky.com <br>超级管理员:admin,密码:admin。</td> 
  </tr> 
  <tr> 
   <td>企业版在线体验</td> 
   <td>http://demo.sqle.actionsky.com:8889<br>用户:admin,密码:admin。</td> 
  </tr> 
 </tbody> 
</table> 

<br> 

 <p>二、新版本功能亮点</p> 

     <h2 data-tool="mdnice编辑器">1. SQL分析新增影响行数【企业版】</h2> 

      当用户需要了解SQL实际的影响行数时,现有执行计划中仅能提供预估的影响行数,将与实际存在差异,无法用以评估SQL实际性能。因此,平台在审核结果-SQL分析中,新增影响行数字段,用户可通过查看该条SQL的影响行数,评估其执行性能。以下是简单的功能试用: 

     <p>用户点击审核结果中的SQL分析,在性能panel中查看该条SQL的影响行数。目前MySQL已支持,Oracle、PostgreSQL、SQL Server 本月也会完成支持。</p> 
     <p><img src="https://img.mryunwei.com/uploads/2023/10/20231013080957986.png"></p> 

     <h2 data-tool="mdnice编辑器">2. 审核结果突出规则程度及数量</h2> 

      当进行SQL审核时,用户需要了解触发的审核规则的严重程度,确认触发的规则是否有超出自身设置的审核等级。因此,平台对审核结果栏进行优化,优先展示SQL触发的规则等级及数量。以下是简单的功能试用: 

     <p>用户查看审核结果,查看触发的规则等级及数量</p> 
     <p><img src="https://img.mryunwei.com/uploads/2023/10/20231013081001515.png"></p> 

      点击展开,查看触发的规则详情 

     <p><img src="https://img.mryunwei.com/uploads/2023/10/20231013081006283.png"></p> 

      <h4 data-tool="mdnice编辑器">3. 新增一批 MySQL 审核规则</h4> 

       <h4 data-tool="mdnice编辑器">检查LIMIT的偏移offset是否过大</h4> 

        因为offset指定了结果集的起始位置,如果起始位置过大,那么 MySQL 需要处理更多的数据才能返回结果集,这可能会导致查询性能下降。 

       <h4 data-tool="mdnice编辑器">UPDATE/DELETE操作需要有WHERE条件</h4> 

        因为这些语句的目的是修改数据库中的数据,需要使用 WHERE 条件来过滤需要更新或删除的记录,以确保数据的正确性。另外,使用 WHERE 条件还可以提高查询性能。 

       <h4 data-tool="mdnice编辑器">禁止过度使用绑定变量</h4> 

        因为过度使用绑定变量会增加查询的复杂度,从而降低查询性能。过度使用绑定变量还会增加维护成本。 

       <h4 data-tool="mdnice编辑器">连接操作必须指定连接条件</h4> 

        指定连接条件可以确保连接操作的正确性和可靠性,如果没有指定连接条件,可能会导致连接失败或连接不正确的情况。 

       <h4 data-tool="mdnice编辑器">SQL中使用了COUNT(col)</h4> 

        建议使用COUNT(*),因为使用 COUNT(col) 需要对表进行全表扫描,这可能会导致性能下降。 

       <h4 data-tool="mdnice编辑器">索引字段需要有非空约束</h4> 

        索引字段上如果没有非空约束,则表记录与索引记录不会完全映射。 

       <h4 data-tool="mdnice编辑器">执行计划中不能存在索引全扫描步骤</h4> 

        在数据量大的情况下索引全扫描严重影响SQL性能。 

       <h4 data-tool="mdnice编辑器">执行计划中不能存在索引跳扫</h4> 

        索引扫描是跳转扫描,未遵循最左匹配原则。 

       <h4 data-tool="mdnice编辑器">update和delete语句评估影响行数过大</h4> 

        如果 DML 操作影响行数过多,会导致查询性能下降,因为需要扫描更多的数据。 

       <h4 data-tool="mdnice编辑器">禁止对长字段进行排序</h4> 
       <p>对例如VARCHAR(2000)这样的长字段进行ORDER BY、DISTINCT、GROUP BY、UNION之类的操作,会引发排序,有性能隐患。</p> 

  <p>三、完整的release信息<br></p> 

<p>Release Notes</p> 

 <p data-tool="mdnice编辑器">新增:</p> 
 <ul data-tool="mdnice编辑器"> 
  <li><p>[#1413] 新增 SQL 影响行数提示【企业版】;</p></li> 
  <li> 

    [#1432] 新增一批 MySQL 审核规则; 
   </li> 
 </ul> 

  特性: 

 <ul data-tool="mdnice编辑器"> 
  <li><p>[#1427] 审核结果突出规则程度及数量;</p></li> 
  <li><p>[#1412] 部分页面进行优化。</p></li> 
 </ul> 

往期版本:

SQL审核结果支持查看改进建议啦!

SQL审核 | SQLE 2.2303.0 来啦!

平台支持集群模式

新增项目级统计看板,支持按项目查看待办

推荐阅读:

这里有 MySQL/Oracle 最常用的 SQL 开发规则

如何快速使用 SQLE 审核各种类型的数据库

SQLE 兼容 MySQL 8.0 测评

SQLE 如何开发一条自定义的规则

如何使用 SQLE 进行开发阶段 SQL 审核

更多关于 SQLE 的信息和交流,请加入官方QQ交流群:637150065...


本文分享自微信公众号 - 爱可生开源社区(ActiontechOSS)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。