更新时间:2025-07-30 GMT+08:00

使用DWS查询过滤器拦截慢SQL

功能介绍

在使用DWS过程中经常会遇到因慢SQL导致整个集群系统性能变差甚至不可用等痛点问题,对此DWS提供了查询过滤器功能,支持通过建立过滤规则提前进行语句拦截。

查询过滤器可以通过SQL ID对慢SQL语句进行拦截,同时结合异常规则功能在触发异常规则次数达到设定的临界值时,自动将触发异常规则的SQL语句ID添加到查询过滤器的黑名单中进行拦截。除此之外查询过滤器还提供了更丰富的拦截规则,例如SQL Hash和正则匹配等更灵活的拦截方式,支持将拦截规则绑定到某一用户或某一数据库。

约束与限制

查询过滤器仅9.1.0.200及以上集群版本支持。

创建查询过滤器

  1. 登录DWS管理控制台
  2. 在集群列表中单击指定集群名称,进入“集群详情”页面。
  3. 在上侧导航栏单击“资源管理”
  4. 切换至“查询过滤器”页签,单击“创建查询过滤器”,查询过滤器参数配置说明请参见表1

    图1 添加查询过滤器

    表1 查询过滤器字段说明

    字段名

    是否必填

    说明

    数据库名称

    下拉框选择数据库。

    规则名称

    查询过滤器的名称,支持数字大小写字母_$,有唯一性判断,支持3-63位长度。

    匹配SQL类型

    可在SQL/SQL ID/QL Hash中选择:

    • SQL:查询过滤规则匹配的SQL语句。
    • SQL ID:查询过滤规则匹配的unique_sql_id值。
    • SQL Hash:查询过滤规则匹配的sql_hash值。

    语句类型

    分别对应SELECT/UPDATE/INSERT/DELETE/MERGE,默认为全部。

    绑定用户

    可对指定用户生效。

    客户端名称

    用于标识连接到数据库的应用程序的名称,允许客户为每个连接指定一个自定义的应用程序名称,例如gsql。

    客户端IP地址

    可对指定IP生效。

    最大分区数

    计划预估扫描节点的最大分区数。

    最大表数

    计划预估扫描的最大表数。

    最大行数

    计划预估扫描节点的最大行数。

    作业类型

    主动标识的作业类型。

    资源池名称

    过滤规则匹配的资源池名称。

    最大并发数

    过滤规则对应语句最大并发数。

    告警行为

    过滤规则告警行为。

  5. 确认无误后,单击“确定”

查询过滤器管理操作

  1. 登录DWS管理控制台
  2. 在集群列表中单击指定集群名称,进入“集群详情”页面。
  3. 在上侧导航栏单击“资源管理”
  4. 切换至“查询过滤器”页签,用户可对查询过滤器进行编辑删除操作。操作步骤如下所示。

    表2 查询过滤器管理操作

    操作入口

    说明

    编辑

    单击指定查询过滤器操作列的“编辑”,编辑查询过滤器参数说明可参见表1

    删除

    单击指定查询过滤器操作列的“删除”,删除查询过滤器。

  5. 确认无误后,单击“确定”