Used: 438105027512, Limit: 438103947386. Mem usage has exceed the limit of single query, You can change the limit by set session variable exec_mem_limit目前我设置比较这个限制的值大,还是报错超出限制,

您把环境弄好,表弄好,重新测一下把有问题的SQL发出来就好了

嗯呢好的,现在ds 基准压测数据导入好了,我先测试一下咱们之前exec_mem_limit生效了吗

这次我观察一下,内存不像之前吃的那么快,增长很慢,是不是性能有瓶颈了呢

show global variables like ‘%exec_mem_limit%’;
curl http://be_host:http_port/varz | grep mem_limit

从磁盘load数据进去内存吧,等下再观察一下

看上去是生效了

是生效了,你刚导入完数据,执行以下 ANALYZE FULL TABLE xxx

MySQL [tcpds10tmp]> ANALYZE FULL TABLE web_sales;
ERROR 1064 (HY000): Invalid timeout. Timeout should between 1 and 259200 seconds
MySQL [tcpds10tmp]> ANALYZE FULL TABLE web_sales;
ERROR 1064 (HY000): Invalid timeout. Timeout should between 1 and 259200 seconds
MySQL [tcpds10tmp]> ANALYZE FULL TABLE web_site;
ERROR 1064 (HY000): Invalid timeout. Timeout should between 1 and 259200 seconds

SHOW ANALYZE;

CBO优化器 @ Cost_based_optimizer @ StarRocks Docs

现在建完表之后,发现查询性能太差了,之前一个sql3 9.84s 7.75s 4.63s
,现在100 rows in set (2 min 27.39 sec)

set global query_timeout = 86400;

第一次查询都是走磁盘,是会慢很多,后面走内存就快了,看看这些参数都设置好没
fe.conf
enable_pipeline_engine=true
parallel_fragment_exec_instance_num=60
pipeline_dop=0
exec_mem_limit = 515396075520

be.conf
mem_limit=95%

set global xxx=xxx; 服务器重启后也会失效的,需要在fe.conf或be.conf设置好才会持久化。

嗯嗯好的,我在配置加了

ANALYZE FULL TABLE xxx
先把所有的表 收集统计信息后再测试吧

这个我们执行失败了,这个需要怎么搞呢

设置这个后执行ANALYZE FULL TABLE xxx 还是报错吗?

不报错了,现在在执行力呢

是每个表都要执行对吧,如果是我就写一个for循环