GBase 8a
性能调优
文章

GBase8a数据库sql优化建议

发表于2024-12-30 19:56:5948次浏览3个评论

1、询尽量过滤多余数据
使用表进行查询时,尽量过滤以减少数据,sql 可以通过减少投影列和增加过滤条 件尽量减少数据,以提高后续计算的数据量。

2、表关联避免笛卡儿乘积
表关联避免无关联条件,这将导致大量结果集从而影响性能。

3、SQL 改写
当通过性能分析发现 GBase 8a 优化器产生的不是最优计划时,很多场合下可以通 过改写 SQL 的方式避免一些性能问题。

4、union all 优于 union
能用 union all 尽量不用 union。由于 union 操作需要进行一次去重,去重对于性 能影响很大,尽量保证相同数据只入库一次,不同表间无重复数据,进行 union all 性能会很大提升。

5、自定义函数中避免操作表
函数在计算节点执行,因此函数中只允许操作复制表,建议函数中尽量不要操作表。

6、尽量不使用游标
尽量不用游标。游标的操作类似将每行的值取出来,做一系列处理。如果可以去掉游标,改成一条包含多个相关子查询的sql,性能将大大提升。

7、能用 varchar 不用 char
能用 varchar 不用 char。
Char 的空格可能影响性能;
Char 和varchar 的关联会导致关联不正确。

评论

登录后才可以发表评论
崔哥发表于 9个月前
给你点个赞
用户头像
levvel发表于 8个月前
读书破万卷,下笔如有神
GBase用户51887发表于 2个月前
向大佬学习