【 使用环境 】测试环境
【 OB 】
【 使用版本 】
【问题描述】表t1是RANGE分区表,其DDL定义如下:
CREATE TABLE t1 (
C1INT,
C2 INT
PARTITION BY RAN GE(C1 + 1) (
PARTITION PO VALUES LESS THAN(100),
PARTITION P1 VALUES LESS THAN(200),
PARTITION P2 VALUES LESS THAN(MAXVALUE)
;SELECT * FROM T1 WHERI C1>= 199;该查询需要访问的分区情况是仅访问分区P2,但测出来是全分区 ?
【复现路径】问题出现前后相关操作
###创建t1表
create table t1 ( c1 int, c2 int ) partition by range(c1+1)( partition p0 values less than(100), partition p1 values less than(200), partition p2 values less than(maxvalue) );
##创建数据
DELIMITER //
CREATE PROCEDURE InsertTestData()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <= 300 DO
INSERT INTO t1 (c1, c2) VALUES (i, i * 2);
SET i = i + 1;
END WHILE;
END //
DELIMITER ;
CALL InsertTestData();
##查看
select * from t1 where c1 >= 199;
##查看计划
SELECT DBMS_XPLAN.DISPLAY_CURSOR() ;
expalin select * from t1 where c1 >= 199;
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
