GBase8s join 优化:optcompind=0
基于Benchmark5.0工具对GBase 8s数据库进行性能测试,针对join语句(SELECT c_discount, c_last, c_credit, w_tax FROM bmsql_customer JOIN bmsql_warehouse ON (w_id = c_w_id) WHERE c_w_id = ? AND c_d_id = ? AND c_id = ?)进行性能优化。
1、 select join 优化方式
jdbc 连接串 url中设置 optcompind=0
2、 select join 优化测试场景
测试环境(浪潮服务器):
操作系统:CentOS Linux release 7. 3 .1 611 (Core)
内核: Linux version 3.10.0- 514 .el7.x86_64
cpu : 4( 颗)*24(核)*2(超线程)
NUMA node0 CPU(s): 0-2 3 , 9 6- 119
NUMA node1 CPU(s): 2 4 - 47 , 120 -1 43
NUMA node 2 CPU(s): 48 - 71 , 144 -1 67
NUMA node 3 CPU(s): 72 - 95 , 168 -1 91
内存 : 2014G
硬盘 :傲腾硬盘 2*700G
网卡 : 万兆网卡 25000Mb/s
测试场景:
基于GBase 8s A2.6版本,TPCC测试模型500仓数据量、表为500分片(list分片),通过Benchmarksql5.0针对新订单业务第二条SQL语句(SELECT c_discount, c_last, c_credit, w_tax FROM bmsql_customer JOIN bmsql_warehouse ON (w_id = c_w_id) WHERE c_w_id = ? AND c_d_id = ? AND c_id = ?)进行性能测试过程中, 96并发下将optcompind从2修改为0后性能提升2-3倍。
针对第一条sql (SELECT d_tax, d_next_o_id FROM bmsql_district WHERE d_w_id = ? AND d_id = ? )及第一二条sql语句性能没有明显提升。
3、 具体优化方式
修改Benchmarksql5.0测试工具工具配置文件props.gbase8s,将参数conn中新增或者修改 optcompind =0 (默认值为2)
4、 optcompind 参数
optcompind=0 :
查询优化器优先使用nested-loop join,而非sort-merge join or a hash join
optcompind=1 :
隔离级别为4(可重复读),优化方式同optcompind=0,其他隔离级别,优化方式同optcompind=2
optcompind=2 (默认值):
查询优化器根据估算成本选择join方式
官网:www.gbase.cn