我有一个Oracle Siebel数据库,目前是数据清理练习的主题。
在S_CONTACT表中有一堆无效的电子邮件地址,这些地址将由空字符串或空字符串替换。
据我了解,此活动不会减小表的大小,因为它是一个固定长度的列。
但是,此活动是否可能减少索引的大小?
也就是说,用空格或空值替换几百万“无电子邮件”/“asdf”/“no@email.com”值(我被认为在Oracle中空白和空值相同)。
答案 0 :(得分:2)
Oracle将空字符串视为null。
看一下这个链接: null vs empty string in Oracle
根据经验,NULL值永远不会被索引,所以是的,这可能会减小索引的大小,如果可空列是所述索引上的唯一列。
如果要索引NULL值,则必须使用NVL创建基于函数的索引(并相应地调整查询),或者创建和索引([固定值],[可空列])
[编辑]正如@a_horse_with_no_name指出的那样,"仅包含NULL值的元组永远不会被编入索引",这就是我想说的,但方式更清晰。