oracle表里每行纪录有个隐含的列,叫rowid,他代表数据存放的逻辑位置,可对应到物理位置
当插入数据时,是依次分配的,一次按时间排序,但是这个rowid好像不是可以简单排序的
select rowid,a,b from table1;
------
delete后应commit
----------------------
oracle在delete后会将原数据块在低于参数pctfree之后将这个数据块置于 自由块列表,以后插入的数据会保存到这些自由块列表中,并不一定会再分给原表,更不用说原来的数据了,你应该是没commit,数据就根本没真正删除,就又insert了
当插入数据时,是依次分配的,一次按时间排序,但是这个rowid好像不是可以简单排序的
select rowid,a,b from table1;
------
delete后应commit
----------------------
oracle在delete后会将原数据块在低于参数pctfree之后将这个数据块置于 自由块列表,以后插入的数据会保存到这些自由块列表中,并不一定会再分给原表,更不用说原来的数据了,你应该是没commit,数据就根本没真正删除,就又insert了
解决方案 »
- 数据库诊断监视器发现个别数据库段造成了大量的用户 I/O 等待
- ORACLE数据库的几个问题,视图更新,索引效率,insert执行过程。。
- sqlplus的输出问题
- pl sql 操作超大字符串
- 为什么老是报Cannot SET SEVEROUTPUT
- 变量小问题
- java如何存储blob
- 为什么在设域的主机上安装ORACLE817会无法启动数据库例程
- 表 t1 ,字段 c1 ,c1不是主键所以值有重复。要选择c1的值(不重复),SQL语句如何写?拜托!
- oracle的bug?
- ORACLE pl/sql 中没有没有办法知道执行的时间,I/O统计信息
- 如何在 sql plus里面运行一个存储过程?
如果你想排序,应该定好你的排序标准,必要的时候添加一个字段来进行标记。
如果要彻底删除记录,需要使用truncate