数据仓库服务 GAUSSDB(DWS)-SELECT操作规范:建议3.10 尽量避免对关联条件字段和过滤条件字段进行函数运算

时间:2024-12-24 11:19:44

建议3.10 尽量避免对关联条件字段和过滤条件字段进行函数运算

违反规范的影响

  • 对关联条件字段和过滤条件字段进行函数运算,导致优化器无法获取到准确的字段统计信息,无法生成最优计划,影响执行性能。

方案建议

  • 关联条件字段之间直接比较,需要运算后比较场景在数据入库前做好加工。
  • 过滤条件和常量比较时,只对常量列做函数运算,字段列不做函数运算,例如:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT id, from_image_id, from_person_id, from_video_id
    FROM face_data
    WHERE SS.DEL_FLAG = 'N'
    AND NVL(SS.DELETE_FLAG, 'N') = 'N'
    改写为:
    SELECT id, from_image_id, from_person_id, from_video_id
    FROM face_data
    where SS.DEL_FLAG = 'N'
    AND (SS.DELETE_FLAG = 'N' or SS.DELETE_FLAG is null)
    
support.huaweicloud.com/devg-dws/dws_04_0126.html