我有一个Oracle Siebel数据库,目前正在进行数据清理。
在S_CONTACT表中有大量无效的电子邮件地址,它们将被null或空字符串替换。
根据我的理解,这个活动不会减少表的大小,因为它是一个固定长度的列。
然而,这个活动可能会减少索引的大小吗?
也就是说,用空白或空替换几百万个"no email"/"asdf"/"no@email.com"值(我被引导相信空白和空在Oracle中是相同的)。
Oracle将空字符串视为null。
看看这个链接:
NULL值,作为经验法则,永远不会被索引,所以是的,这可以减少索引的大小,如果可空列是该索引上唯一的列。
如果你想索引NULL值,你必须使用NVL创建一个基于函数的索引(并相应地调整你的查询),或者在([fixed value],[nullable column])上创建和索引
[EDIT]正如@a_horse_with_no_name所指出的,"只包含NULL值的元组永远不会被索引",这就是我想说的,但是更清楚。