关于oracle数据插入排序的有关问题
关于oracle数据插入排序的问题
现有三张表a、b、c,
从b、c两张表里取数给a,
我先将数取出并按照某一个字段排序,后插入a表,
取数的部分单独运行是正常排序的,但插入a表后,最后面的几条数据总是排到了最前面,
我试了临时表、借助另一张表过渡都没用,
请问各位知道为什么吗?
谢谢
------解决思路----------------------
truncate A表以后,再插入,会按顺序排列
但即使是这样,select查询出来的顺序还是和执行计划有关,不一定会按照数据存储的顺序排列
因此,需要排序最好根据某个排序字段来order by ,这个才是比较合理的
------解决思路----------------------
我认为嘛,想保证排序效果必需都得带上order by
oracle文档说了不指定排序,不保证排序效果
你指定排序以后插入表以后表可能不是按照你指定顺序存储的,Oracle有自己的一套存储机制,我不大懂,也没去研究
------解决思路----------------------
个人认为插入表中数据的自然序没有意义,要让数据排序规范的是用 order by
现有三张表a、b、c,
从b、c两张表里取数给a,
我先将数取出并按照某一个字段排序,后插入a表,
取数的部分单独运行是正常排序的,但插入a表后,最后面的几条数据总是排到了最前面,
我试了临时表、借助另一张表过渡都没用,
请问各位知道为什么吗?
谢谢
------解决思路----------------------
truncate A表以后,再插入,会按顺序排列
但即使是这样,select查询出来的顺序还是和执行计划有关,不一定会按照数据存储的顺序排列
因此,需要排序最好根据某个排序字段来order by ,这个才是比较合理的
------解决思路----------------------
我认为嘛,想保证排序效果必需都得带上order by
oracle文档说了不指定排序,不保证排序效果
你指定排序以后插入表以后表可能不是按照你指定顺序存储的,Oracle有自己的一套存储机制,我不大懂,也没去研究
------解决思路----------------------
个人认为插入表中数据的自然序没有意义,要让数据排序规范的是用 order by