原文链接:www.gbase.cn/community/p…
更多精彩内容尽在南大通用GBase技术社区(www.gbase.cn/community),…
SQL 调优
1.1查询尽量过滤多余数据
使用表进行查询时,尽量过滤以减少数据,sql 可以通过减少投影列和增加过滤条 件尽量减少数据,以提高后续计算的数据量。
1.2表关联避免笛卡儿乘积
表关联避免无关联条件,这将导致大量结果集从而影响性能。
1.3SQL 改写
当通过性能分析发现 GBase 8a 优化器产生的不是最优计划时,很多场合下可以通 过改写 SQL 的方式避免一些性能问题。
1.4union all 优于 union
能用 union all 尽量不用 union。由于 union 操作需要进行一次去重,去重对于性 能影响很大,尽量保证相同数据只入库一次,不同表间无重复数据,进行 union all 性能会很大提升。
1.5自定义函数中避免操作表
函数在计算节点执行,因此函数中只允许操作复制表,建议函数中尽量不要操作表。
1.6尽量不使用游标
尽量不用游标。游标的操作类似将每行的值取出来,做一系列处理。如果可以去掉游标,改成一条包含多个相关子查询的sql,性能将大大提升。
1.7能用 varchar 不用 char
能用 varchar 不用 char。
Char 的空格可能影响性能;
Char 和varchar 的关联会导致关联不正确。
原文链接:www.gbase.cn/community/p…
更多精彩内容尽在南大通用GBase技术社区(www.gbase.cn/community),…