使用NULL值更新索引列

时间:2015-03-22 23:45:10

标签: sql sql-server oracle indexing informix

我在名为TouchTime的DATETIME YEAR TO FRACTION列上有一个dups索引,我将其用作时间戳,以查找当前工作日最近插入或更新的行。我最近将这个列添加到一个约800K行的表中。平均更新7,000行,每个工作日插入300行。在用户开始在下一个工作日插入或更新行之前,我将时间戳列更新为表中具有上一个工作日时间戳的所有行。

当对具有时间戳的~7,300行进行nullfing时,它对索引条目有什么影响?..它们在索引文件中的叶位置是否保持在同一位置?当用户开始添加和更新工作日时#39 ; s行,使用索引的查询会自动绕过具有空时间戳值的行吗?

2 个答案:

答案 0 :(得分:0)

如果索引的时间戳列的多个行设置为null,则将移动索引表中行的位置。 SQL Server将所有索引保存在Btree Plus中,这样可以使所有索引树保持平衡并始终保持相同的深度。

答案 1 :(得分:0)

在Oracle中,您必须重建索引。对NULL数据库的此更新对于Oracle数据库来说是一个非常令人不愉快的操作。