1.优化器
First Rows:它与Choose方式是类似的,所不同的是当一个表有统计信息时,它将是以最快的方式返回查询的最先的几行,从总体上减少了响应时间。
All Rows:也就是我们所说的Cost的方式,当一个表有统计信息时,它将以最快的方式返回表的所有的行,从总体上提高查询的吞吐量。没有统计信息则走RBO的方式。(gbase8s默认方式)
如果发现All Rows模式下的sql慢了,请换First Rows试试。
dbaccess testdb -
SET OPTIMIZATION FIRST_ROWS;
set pdqpriority 96;
要执行的sql语句
2,sql优化,持续更新。。。。。。。。。。。。。。。。。。。。。。。。。。。
1)某些函数性能比较低
substr(t.terminal_id,1,6)换成t.terminal_id[1,6]
to_date()直接换成时间字符串'2024-12-11 09:54:12'
2)禁止select * 写法
3)where后的字段最好建立索引
4)超过500w行的表必须分片处理,按月建表,按天分片。
5)group by 后边跟的别名或者函数不生效,请用相应的位置序号代替
7)禁止在数据库中存储图片,文件等大的二进制数据
因为备份和删除都很慢,很消耗io和内存,还有cpu
8)禁止selet 大量的blob和clob,byte和text;如果有blob和clob请转换成byte和text
因为很消耗io和内存,还有cpu
9)最好使用utf8编码集
10)伪指令集
SELECT {+FIRST_ROWS Return the first screenful of rows as fast as possible} * FROM lga where name='9997xx';
#执行查询,返回详细执行执行计划
{+FIRST_ROWS,EXPLAIN Return the first screenful of rows as fast as possible}
#不执行查询,返回粗略执行执行计划
{+FIRST_ROWS,EXPLAIN,AVOID_EXECUTE Return the first screenful of rows as fast as possible}
11)相关的sql性能优化文章