在请教一个问题,我建完索引之后,在导入数据的话,索引需要重新建吗
不需要,有一个速度更快,就是不要有索引,把数据导入后 再建索引
请教一下目前我们不是lineitem,orders 是一组,partsupp part 是一组,如果组合换一下,会解决吗
我看您提供的SQL,lineitem,orders 是一组,partsupp part 是一组,是比较合适,请问如何组合换一下?
x现在lineitem,orders 他俩join的时候不是会超出范围,orders 这个表比较大吗?是不是可以lineitem,partsupp 他俩组合, orders,part 组合
您说的这个情况是基于哪个SQL判断出来?
sql5
select n_name, sum(l_extendedprice * (1 - l_discount)) as revenue
from customer, orders, lineitem, supplier, nation, region
where
c_custkey = o_custkey
and l_orderkey = o_orderkey
and l_suppkey = s_suppkey
and c_nationkey = s_nationkey
and s_nationkey = n_nationkey
and n_regionkey = r_regionkey
and r_name = 'ASIA'
and o_orderdate >= date '1994-01-01'
and o_orderdate < date '1994-01-01' + interval '1' year
group by n_name
order by revenue desc;
这个SQL里面没有 partsupp这个表。
这个SQL最关键就是orders和lineitem之间的关联查询。
那这两个表关联,就是hash join 有问题
嗯,所以才需要使用colocate join.
可能是数据量太大,使用colocate join 也没有效果
应该能跑出结果,效率也比shuffle join好的。
今天晚上我先按照您这边给的最后一版本-h 的建表语句来建表,导入数据,明天我们一起看看效果吧
好的,希望有个好结果,谢谢!
之前40s左右 sql 现在跑不动了,之前sql 跑完数据导入什么操作都不用做直接查40s
参数优化
2.3.0
enable_pipeline_engine=false
parallel_fragment_exec_instance_num=64
pipeline_dop=0 把这行配置去掉
exec_mem_limit = 515396075520
be.conf
mem_limit=95%
disable_storage_page_cache=false
storage_page_cache_limit= 64G
嗯嗯好的,我测试一下