使用DWS查询过滤器拦截慢SQL
功能介绍
在使用DWS过程中经常会遇到因慢SQL导致整个集群系统性能变差甚至不可用等痛点问题,对此DWS提供了查询过滤器功能,支持通过建立过滤规则提前进行语句拦截。
查询过滤器可以通过SQL ID对慢SQL语句进行拦截,同时结合异常规则功能在触发异常规则次数达到设定的临界值时,自动将触发异常规则的SQL语句ID添加到查询过滤器的黑名单中进行拦截。除此之外查询过滤器还提供了更丰富的拦截规则,例如SQL Hash和正则匹配等更灵活的拦截方式,支持将拦截规则绑定到某一用户或某一数据库。
约束与限制
查询过滤器仅9.1.0.200及以上集群版本支持。
创建查询过滤器
- 登录DWS管理控制台。
- 在集群列表中单击指定集群名称,进入“集群详情”页面。
- 在上侧导航栏单击“资源管理”。
- 切换至“查询过滤器”页签,单击“创建查询过滤器”,查询过滤器参数配置说明请参见表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生效。
最大分区数
否
计划预估扫描节点的最大分区数。
最大表数
否
计划预估扫描的最大表数。
最大行数
否
计划预估扫描节点的最大行数。
作业类型
否
主动标识的作业类型。
资源池名称
否
过滤规则匹配的资源池名称。
最大并发数
否
过滤规则对应语句最大并发数。
告警行为
否
过滤规则告警行为。
- 确认无误后,单击“确定”。
查询过滤器管理操作
- 登录DWS管理控制台。
- 在集群列表中单击指定集群名称,进入“集群详情”页面。
- 在上侧导航栏单击“资源管理”。
- 切换至“查询过滤器”页签,用户可对查询过滤器进行编辑和删除操作。操作步骤如下所示。
表2 查询过滤器管理操作 操作入口
说明
编辑
单击指定查询过滤器操作列的“编辑”,编辑查询过滤器参数说明可参见表1。
删除
单击指定查询过滤器操作列的“删除”,删除查询过滤器。
- 确认无误后,单击“确定”。