【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】observer
【 使用版本 】oceanbase V4.4
【问题描述】数据库中有一张一百万行的大表要定期全表更新,但开启 parallel_degree_policy=auto 后,只有1个或者两个并发任务,更新很慢。
请问在不使用SQL hint 的情况下,有哪些数据库参数、变量或者系统表可以修改,让数据库更倾向于或者强制执行 并行DML 操作,来减少更新时间?
7 个赞
- hint加并行(/*+ parallel(2) */)
- 设置表级别并行度(alter table t1 PARALLEL 3)
- 设置会话默认并行度(alter session force parallel query parallel 5)
你可能期望第2种? 对表做并行度设置
2 个赞
学习、了
SHOW VARIABLES like ‘version_comment’; 查一下具体的版本号
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003381298
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003381306
可以看一下这个文档 怎么开启并行的dml
2 个赞
hint是常见做法,比较灵活
1 个赞
parallel_min_scan_time_threshold
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685269
1 个赞
感谢各位,再补充一下
如果要在会话层面设置并行度
alter session force parallel query parallel 5;
或者
set session _force_parallel_query_dop = 5;
需要保证会话级别
parallel_degree_policy=manual
1 个赞
学习了