问题描述
您好,我遇到了无法理解的奇怪行为。
我有这张表
-- TEST_TABLE的索引
有以下记录:
以下两个查询返回不同的结果:
标识最大值 _ 日期
-
13376 22-2月-2017 09:00:07
11969 22-2月-2017 09:00:07
11970 22-2月-2017 09:00:07
11971 22-2月-2017 09:00:07
11975 22-2月-2017 09:00:07
11967 22-2月-2017 09:00:07
11962 22-2月-2017 09:00:07
11963 22-2月-2017 09:00:07
11964 22-2月-2017 09:00:07
11965 22-2月-2017 09:00:07
11966 22-2月-2017 09:00:07
11961 22-2月-2017 09:00:07
标识最大值 _ 日期
-
11961 13-2月-2017 09:53:57
11963 13-2月-2017 09:54:01
11964 13-2月-2017 09:54:16
11965 13-2月-2017 09:54:22
11966 13-2月-2017 09:54:25
11967 13-2月-2017 09:54:30
11970 13-2月-2017 09:54:40
11971 13-2月-2017 09:56:49
11975 13-2月-2017 09:56:49
11962 13-2月-2017 09:53:57
11969 13-2月-2017 09:54:35
13376 22-2月-2017 09:00:07
我发现原因是索引,但是为什么,我无法解释。
产品版本: 甲骨文数据库11g版本11.2.0.4.0-64位生产
在LiveSQL我不能重复这个。
我有这张表
CREATE TABLE test_table (id NUMBER(10,0) NOT NULL, register_date DATE DEFAULT sysdate NOT NULL, row_id NUMBER(10,0) NOT NULL, journal_col_id NUMBER(10,0) NOT NULL)复制
-- TEST_TABLE的索引
CREATE INDEX idx_test_table_row_id ON test_table ( "ROW_ID" DESC ) NOPARALLEL LOGGING复制
CREATE INDEX idx_test_table_col_id ON test_table ( journal_col_id ASC ) NOPARALLEL LOGGING复制
有以下记录:
INSERT INTO test_table VALUES(13376,TO_DATE('2017-02-22 09:00:07', 'YYYY-MM-DD HH24:MI:SS'),1276,154); INSERT INTO test_table VALUES(11969,TO_DATE('2017-02-13 09:54:35', 'YYYY-MM-DD HH24:MI:SS'),1276,153); INSERT INTO test_table VALUES(11970,TO_DATE('2017-02-13 09:54:40', 'YYYY-MM-DD HH24:MI:SS'),1276,132); INSERT INTO test_table VALUES(11971,TO_DATE('2017-02-13 09:55:16', 'YYYY-MM-DD HH24:MI:SS'),1276,133); INSERT INTO test_table VALUES(11975,TO_DATE('2017-02-13 09:56:49', 'YYYY-MM-DD HH24:MI:SS'),1276,133); INSERT INTO test_table VALUES(11961,TO_DATE('2017-02-13 09:53:57', 'YYYY-MM-DD HH24:MI:SS'),1276,124); INSERT INTO test_table VALUES(11962,TO_DATE('2017-02-13 09:53:57', 'YYYY-MM-DD HH24:MI:SS'),1276,134); INSERT INTO test_table VALUES(11963,TO_DATE('2017-02-13 09:54:01', 'YYYY-MM-DD HH24:MI:SS'),1276,125); INSERT INTO test_table VALUES(11964,TO_DATE('2017-02-13 09:54:16', 'YYYY-MM-DD HH24:MI:SS'),1276,126); INSERT INTO test_table VALUES(11965,TO_DATE('2017-02-13 09:54:22', 'YYYY-MM-DD HH24:MI:SS'),1276,127); INSERT INTO test_table VALUES(11966,TO_DATE('2017-02-13 09:54:25', 'YYYY-MM-DD HH24:MI:SS'),1276,128); INSERT INTO test_table VALUES(11967,TO_DATE('2017-02-13 09:54:30', 'YYYY-MM-DD HH24:MI:SS'),1276,129);复制
以下两个查询返回不同的结果:
SELECT id, max(register_date) over (PARTITION BY row_id, journal_col_id) max_date FROM test_table复制
标识最大值 _ 日期
-
13376 22-2月-2017 09:00:07
11969 22-2月-2017 09:00:07
11970 22-2月-2017 09:00:07
11971 22-2月-2017 09:00:07
11975 22-2月-2017 09:00:07
11967 22-2月-2017 09:00:07
11962 22-2月-2017 09:00:07
11963 22-2月-2017 09:00:07
11964 22-2月-2017 09:00:07
11965 22-2月-2017 09:00:07
11966 22-2月-2017 09:00:07
11961 22-2月-2017 09:00:07
SELECT id, max(register_date) over (PARTITION BY journal_col_id, row_id ) max_date FROM test_table复制
标识最大值 _ 日期
-
11961 13-2月-2017 09:53:57
11963 13-2月-2017 09:54:01
11964 13-2月-2017 09:54:16
11965 13-2月-2017 09:54:22
11966 13-2月-2017 09:54:25
11967 13-2月-2017 09:54:30
11970 13-2月-2017 09:54:40
11971 13-2月-2017 09:56:49
11975 13-2月-2017 09:56:49
11962 13-2月-2017 09:53:57
11969 13-2月-2017 09:54:35
13376 22-2月-2017 09:00:07
我发现原因是索引,但是为什么,我无法解释。
产品版本: 甲骨文数据库11g版本11.2.0.4.0-64位生产
在LiveSQL我不能重复这个。
专家解答
是的,这看起来像一只虫子。
但它在12.1中如预期的那样工作。因此,如果这对您造成重大问题,则看起来像是升级的好借口 :)
但它在12.1中如预期的那样工作。因此,如果这对您造成重大问题,则看起来像是升级的好借口 :)
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
672次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
632次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
541次阅读
2025-04-20 10:07:02
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
489次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
483次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
465次阅读
2025-04-30 12:17:56
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
464次阅读
2025-04-22 00:13:51
火焰图--分析复杂SQL执行计划的利器
听见风的声音
412次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
371次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
352次阅读
2025-05-05 19:28:36