gpt4 book ai didi

sql - 将按主键数据排序的存储存储在Oracle DB中

转载 作者:行者123 更新时间:2023-12-02 09:23:22 25 4
gpt4 key购买 nike

应用程序可在测试服务器和生产服务器上运行,两者都与Oracle 11g DB集成在一起。

我注意到在表中存储数据时测试服务器上有一些排序:

SELECT * FROM table1:
|ID-PK| FK1 |name|
| 100 | 50 | a1 |
| 101 | 50 | a2 |
| 102 | 50 | a3 |

当我在另一个数据库服务器上对同一表执行相同的查询时,我得到了一些无序的结果:
SELECT * FROM table1:
|ID-PK| FK1 |name|
| 102 | 50 | a3 |
| 100 | 50 | a1 |
| 101 | 50 | a2 |

如何强制第二个数据库存储按PK排序的数据?

插入的实体是由Java Web应用程序(使用JPA)创建的,PK是按递增顺序生成的,因此稍后创建的实体应显示在表的末尾。

最佳答案

表中的数据未按顺序存储。在不向查询中添加ORDER BY的情况下,数据库将以最快的方式从表/表中读取行,从而可以从磁盘/存储中读取行,这不能保证它们按排序顺序返回。

第一台服务器上的查询返回的数据可能已经在缓冲区高速缓存中,而先前运行的查询返回的数据具有ORDER BY

当您发出缺少ORDER BY的查询时,引擎决定从缓冲区高速缓存中提取数据,而不是返回到磁盘,这就是为什么它们“按顺序”显示的原因。

关于sql - 将按主键数据排序的存储存储在Oracle DB中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40045672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com