Oracle数据重复和分页异常问题

(36) 2024-02-23 21:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说Oracle数据重复和分页异常问题,希望能够帮助你!!!。

一、问题描述

在每页20条记录是数据出现重复,每页10条时分页数据混乱,每页30,50,100,1000时分页正常

在单独一个数据库表中偶现

二、排查步骤

1.以为是数据库数据异常,直接把程序中SQL复制出来全量查询时,数据总量正常

2.以为是分页控件异常,到其他功能上查询,无异常

3.把分页大小调大到每页30条,50条,100条,1000条,数据正常

4.发现SQL中每次都追加一个排序字段

三、问题原因

oracle分页使用rownum,它跟rowid不同,他的值不是绝对的,每次查询时生成,只能用于小于或小于等于,如果排序order by的字段不是唯一的,有重复值,此时就根据数据的条数不同,分页的大小不同,就有可能发生分页混乱的情况。

这个情况只在特殊数据量和分页情况下偶现

四、建议

1.分页排序时使用唯一值

2.如果必须用有重复的值,那多增加几个排序字段,联合排序,让排序后的记录是有明确顺序的

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复