GBase 8a
性能调优
文章

GBASE8A sql优化建议

发表于2024-12-31 10:32:1639次浏览0个评论

1.尽量不用游标

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


 

2.尽量使用VARCHAR不用CHAR

CHAR的空格可能影响性能;

CHAR和VARCHAR的关联会导致关联不正确。


 

3.尽量使用UNION ALL尽量不用UNION

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


 

4.避免超大结果集的直接返回

对于查询结果集达到1万以上,尤其是百万、千万的结果集,应避免结果集的直接返回,将原始select修改为insert select,即将查询结果插入到一个结果表中或者在客户端输出时要加-q参数。


 

5.高精度DECIMAL可能使性能变慢

如果系统升级前使用的是低精度decimal,则升级后的高精度decimal可能使得性能变慢,这是由于高精度decimal的关联,取值等操作均要耗费更多的资源,但是这种性能变慢是正常的,只要在一个合理可接受的范围内,就不需要考虑这个问题。

评论

登录后才可以发表评论