在DMS中执行SQL后提示“当前SQL不满足数据库性能安全需求”

问题描述

当前执行的SQL不满足数据库性能安全需求,请优化SQL并通过执行计划观察、提高SQL性能或同步元数据后重试。

问题原因

当查询SQL对应的执行计划为全表扫描时,DMS会自动判断当前表数据量是否大于DMS安全规则的全表扫描数据量限制。若超过,则不允许执行SQL。

解决方案

可通过如下方式解决此问题:

  • 通过编辑安全规则配置项,修改限制允许SQL全表扫描的最大值(MB)。具体操作,请参见SQL窗口关系型数据库

  • 手动刷新数据库元信息

    DMS元数据不准确时,即实际表数据量小于安全规则中的数据量限制,您需要在DMS数据库列表区域,手动刷新/同步字典

  • 优化执行计划

    • 修改SQL:WHERE子句增加更多的过滤项,避免扫描无效数据。

    • 新增索引:给WHERE后面的列增加索引,优化执行计划,避免全表扫描。