如题..
在使用oracle的序列的时候..有时候对数据删除的删除和添加频繁的话.就会使序列增长过快..
比如说..新增加了记录..序列为1,2,3,4,,后来又做了删除操作把.2.3给删除了..如何在下一次增长的时候.使用这些被删除的序列,,
同时又不影响性能呢..?
大家一般对于oralce数据的主键自增问题又是怎么处理的呢.?
我们一般都是不关心这个主键的呀
要想实现使用删除的序列, 就得牺牲性能了..
我想到的办法就是做个冗余的表,
删除数据时, 用触发器把id写入这张表中,
插入的时候先在冗余表中挑个值, 如果找不到再用序列, 可以写个函数来完成
数据库始终维护着一个变量,那就是主键自动增长的最大值。
在每次插入一行记录时,使用这个最大值+1。
[quote]是否数据删除后该数据所占的索引是否也会删除..?还是依然存在/?
[/quote]
这个肯定删除! 只是数据库系统不会再利用 [b]被删除后的索引值[/b]。
这样想,如果这个索引还存在的话,检索的性能就要降低一大半。