小白一枚
#1
【 使用环境 】测试环境
【 OB or 其他组件 】 Oceanbase
【 使用版本 】 4.1
【问题描述】
在已存在的表上通过alter table加一个字段,耗时16分钟,有没有什么办法让执行更快一点?
obclient [testdb]> ALTER TABLE t_bookkeepking_record ADD COLUMN result VARCHAR(2) NOT NULL COMMENT ‘结果:00、失败,09、
成功’ BEFORE tokens;
Query OK, 0 rows affected (16 min 7.663 sec)
t_bookkeepking_record设置了分区,分区数是128,该表的字段数总共16个字段(有一个字段是varchar(300),还有一个是varchar(100)),112行记录。从表的字段数和记录数来说,不应该加一个字段需要16分钟,分区数影响会怎么大吗?
【复现路径】问题出现前后相关操作
【问题现象及影响】
【附件】
绪宁
#3
小白一枚
#4
谢谢回复,并行度设成2试了下,没有什么效果,比之前的执行速度还慢一些。
1 个赞
绪宁
#5
查一下这条SQL在 oceanbase.GV$OB_SQL_AUDIT中的记录内容呢,如果没有开启可以先开启一下哈 ALTER SYSTEM SET enable_sql_audit = true;
小白一枚
#6
是不是ALTER语句不会在GV$OB_SQL_AUDIT里记录啊?我模糊查询了下该视图,没有和ALTER有关的任何语句,但有INSERT、UPDATE、SELECT的语句。enable_sql_audit默认是true,查了下参数应该是开启的
。
绪宁
#7
会记录的,不过可能过期了
可以重新执行复现下,然后 where QUERY_SQL like ‘%表名%’ 看一下哈 ,执行alter的租户要跟查看OB_SQL_AUDIT的租户相同